首先,去官网下载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".txt""/>
<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即可。不用去程序中注释原来所有的日志代码。