c#中使用log4net工具记录日志

Posted 学习,尝试,挑战

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中使用log4net工具记录日志相关的知识,希望对你有一定的参考价值。

首先,去官网下载log4net工具 链接http://logging.apache.org/log4net/download_log4net.cgi

目前最新的版本 log4net-1.2.15-bin-newkey.zip

下载之后,目录log4net-1.2.15-bin-newkey\\log4net-1.2.15\\bin\\net\\4.0\\release 里面的log4net.dll就是我们要引用的dll了。

新建一个winform程序,添加引用

然后在程序配置文件App.conifg中加入配置,这里要申明的一点是,不是一定要把log4net的配置放在这个文件里,重新创建一个xml文件也是可以的,一会儿将在下面说到。

我配置得比较简单,需要进行复杂配置的朋友可以去参照他给的示例xml,里面有注释。配置文件App.config如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<log4net>


<logger name="ErrorLog">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\\\\ErrorLog\\\\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<staticLogFileName value="false" />
<datePattern value="_yyyyMMdd&quot;.txt&quot;"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-d{yyyy-MM-dd HH\\:mm\\:ss} - %p%n%m%n%n"/>
</layout>
</appender>
</log4net>
</configuration>

值得注意的是,一个log需要有一个对应的appender。appender中可以配置日志的格式啊,追加日志的方式啊等等。

然后有一点需要特别注意的就是。一定要在Properties中的AssemblyInfo.cs中添加一行:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

这里回答一下上面的问题。在这一行配置中,是可以配置log4net的配置文件位置的,如果像上面一样,就是程序默认的配置文件App.config中读取配置信息,如果你想写在其他地方,单独写一个xml,比如要写在最终生成的exe同级目录下的log4net.xml中,那么这一行就该这么写

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]

注意watch=true是必须的,否则程序就不会对这个进行监听,换个意思,这里可以做开关日志记录的操作。

然后配置完成。看效果。

我们添加一个按钮,直接来看效果:

然后在这个按钮的点击事件中:

private void button1_Click(object sender, EventArgs e)
{
log4net.ILog log = log4net.LogManager.GetLogger("ErrorLog");
log.Error("日志测试");
}

这里略加提醒,这个ErrorLog是在配置文件中配置的logger的name属性,不可以胡乱写,不然程序会找不到那个logger。另外,可以在配置文件中配置各种logger,很多logger,比如业务方面的,数据库方面的,错误信息,换一个logger名字和对应的Appender的名字就可以了。

然后点击按钮。按照代码,应该写一个错误日志,日志内容是“日志测试”,我们去看看结果。

从上图可以看到,在debug目录新建了一个文件夹log,点击进去

这里这个文件夹就是在配置文件中配置的logger名称了,你配置了多个logger,这里就会有多个对应的文件夹,

这个日志文件的名字格式也是在对应的appender 中可以配置的,打开txt文件:

成功!!!同理,这里所有的格式,都是可以配置的。赶快去使用吧。

 

 

总结一下需要注意的点:

1、配置文件一个logger要有一个对应的appender,这个appender可以决定日志的名字,格式,写入方式等等。

2、配置好以后一定不要放了去Properties中的AssemblyInfo.cs中添加一行:[assembly: log4net.Config.XmlConfigurator(Watch = true)],如果你的配置不是写在程序默认配置文件中的,这里要设置好文件的路径,具体例子看上面正文。要关掉日志,Wacth=false即可。不用去程序中注释原来所有的日志代码。

以上是关于c#中使用log4net工具记录日志的主要内容,如果未能解决你的问题,请参考以下文章

C# 使用Log4Net记录程序日志

C#中使用Log4记录日志

如何使用 C# 中的 log4net 记录日志

C#中使用Log4记录日志

多线程代码执行的 Log4Net C# 日志记录问题

C#上位机开发(十三)—— 使用Log4net添加日志记录功能