1.log4net

  1)新建一个Net空白项目,在引用出点击管理NuGet程序包,搜索log4net并安装

  2)建立log4net.config配置文件

    在configuration里面添加如下代码,级别为All,log的所有消息都可以调用

  <!--配置小节——版本声名-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-2.0.8.0"/>
</configSections> <log4net>
<!--记录器,程序入口-->
<logger name="logFile">
<level value="All"/>
<appender-ref ref="LogFileAppender" />
</logger>
<!--附属配置-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="./Log/log.txt" />
<param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%n==========
%n【日志级别】%-5level
%n【记录时间】%date
%n【线程编号】[%thread]
%n【执行时间】[%r]毫秒
%n【出错文件】%F
%n【出错行号】%L
%n【出错的类】%logger 属性[%property{NDC}]
%n【错误描述】%message
%n【错误详情】%newline"/>
</layout>
</appender>
</log4net>

  并且右键属性,设置  复制到输出目录   为   如果较新则复制

    

  3)在AssemblyInfo添加config入口

[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

  4)添加一个button,在click项目里面添加调用日志代码

            int i = , j = ;
try
{
int result = i / j;
}
catch(Exception ex)
{
log.Error("出错了!", ex);
}

  

2.封装LogHelper(和上面无关,这个是封装一个LogHelper,包括配置)

  添加Nuget包log4net

  新建一个标准库LogHelper

using log4net;
using log4net.Config;
using log4net.Repository;
using System;
using System.IO;
[assembly: XmlConfigurator(Watch = true)]
namespace LogHelper
{
public class Log4Helper
{
private static ILog logger = null;
public static void LogInfo(string logstr)
{
if (logger == null)
InitLog4net();
logger.Info(logstr);
}
public static void LogError(string logstr, Exception ex = null)
{
if (logger == null)
InitLog4net();
logger.Error(logstr);
if (ex != null)
logger.Error(ex.ToString());
}
private static object objlock = new object();//初始化log用的锁
private static void InitLog4net()
{
lock (objlock)
{
ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository");
//获取配置文件路径
var conpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config");
XmlConfigurator.Configure(repository, new FileInfo(conpath));
logger = LogManager.GetLogger(repository.Name, "NETCorelog4net");
}
}
}
}

  在类库添加log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="infoAppender" />
<appender-ref ref="errorAppender" />
<appender-ref ref="sqlAppender" />
</root>
<appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
<file value="log/" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<datePattern value="'error'yyyyMMdd'.log'" />
<maxSizeRollBackups value="" />
<maximumFileSize value="1MB" />
<threshold value="ERROR" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline--------%date--------%newline%message" />
</layout>
</appender>
<appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
<file value="log/" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<datePattern value="'info'yyyyMMdd'.log'" />
<maxSizeRollBackups value="" />
<maximumFileSize value="1MB" />
<threshold value="INFO" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline--------%date--------%newline%message" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Info" />
<param name="LevelMax" value="Info" />
</filter>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
</log4net>
</configuration>

  打包,其他项目引用这个包,会自动生成log4net.config,设置属性    复制到输出目录->如果较新则复制

  使用起来也很简单

                Log4Helper.LogInfo("进来了");
Log4Helper.LogError("error");
Log4Helper.LogError("error", ex);

Log4Net配置日志的更多相关文章

  1. Log4Net 配置日志按日期和日志级别分类写入

    配置效果图: 配置代码: <?xml version="1.0" encoding="utf-8" ?> <log4net> <! ...

  2. ASP.NET MVC学习之Log4Net配置(日志记录)

    Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...

  3. C# 日志系统 log4net 配置及使用

    1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...

  4. c# 文件日志处理 需要log4net配置

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

  5. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  6. log4Net(写入日志文件)

    这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了. 首先去log4net下载. 然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4ne ...

  7. Common.Logging log4net Common.Logging.Log4Net 配置

    1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...

  8. log4net 配置

    1.是直接在代码中通过调用XmlConfigurator.Configure()来解析配置文件,配置日志环境. log4net.Config.XmlConfigurator.Configure(); ...

  9. Log4Net配置以及使用

    跟踪程序代码,及时发现程序的运行状态,是每个成熟的软件所必不可少的一个环节,网站发布到真实的环境之后,对于程序的运行状态,我们并不能想开发环境那也,点击调试.日志记录显示就尤为重要,在.NET中记录日 ...

随机推荐

  1. 一个很适合初学者的selenium教程

    http://www.cnblogs.com/hustar0102/p/5885115.html

  2. Mac上在终端上解压与压缩

    1.安装rar 1.brew install unrar 2.unrar -version 3.进入需要解压的文件目录下,unrar x 文件夹名.rar 1.tar -xvf [file.tar.g ...

  3. 5.1、按键SW1控制LED1亮灭

    从图中可以看出,P1_2引脚可以感知SW1的状态,SW1未按下P1_2=1高电平,按下后P1_2=0接地. 注意:P1_2引脚只是感知SW1,不影响SW1. #include "ioCC25 ...

  4. Luogu P4070 [SDOI2016]生成魔咒

    题目链接 \(Click\) \(Here\) 其实是看后缀数组资料看到这个题目的,但是一眼反应显然后缀自动机,每次维护添加节点后的答案贡献即可,唯一不友好的一点是需要平衡树维护,这里因为复杂度不卡而 ...

  5. ArrayList 实现随机点名

    package lijun.cn.demo1; import java.util.ArrayList; import java.util.Random; public class CallName { ...

  6. mybatis mapper配置

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...

  7. nginx暴露目录文件

    location /apk_download { alias /usr/share/nginx/html/; include mime.types; default_type application/ ...

  8. spring boot 返回json字符串 null值转空字符串

    @Configuration public class JacksonConfig { @Bean @Primary @ConditionalOnMissingBean(ObjectMapper.cl ...

  9. go 命令

    go build go build,是我们非常常用的命令,它可以启动编译,把我们的包和相关的依赖编译成一个可执行的文件. go help build 帮助命令 go build go build . ...

  10. MySQL5.7基于binary log的主从复制

    MySQL5.7基于binary log的主从复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 基于binary log 的复制是指主库将修改操作写入binary log 中, ...