[教程]log4net教程

baacloud免费翻墙vpn注册使用

一.概述

使用可靠地第三方类库,比自己重新编写好得多。Log4net是由Apache开发的.Net.日志类库。并且已经很稳定。网址是:。本文基于1.2.10版。
作为Apache的著名开源项目,它有.Net,Java,C++等多个版本.
但是一般来说它只适合作调试是的单行日志,大量的那种.不太适合作正规的,带有调用堆栈的详细日志.

二.第一次使用log4net

1.添加引用:Log4net.dll和using log4net;
2.在需要作日志的类中加入变量
private ILog log = LogManager.GetLogger(typeof(类名));
3.在程序的启动方法中加入这条语句
XmlConfigurator.Configure(new System.IO.FileInfo("配置文件名"));
4.将配置文件写在启动项目的/bin/Debug目录下.
5.配置文件的缺省内容如下所示:

<log4net>
 
<appender name="A1" type="log4net.Appender.ConsoleAppender">
  
<layout type="log4net.Layout.PatternLayout">
   
<conversionPattern value="%-4timestamp %level %logger – %message%newline" />
  
</layout>
 
</appender>
 
 
<root>
  
<level value="Debug" />
  
<appender-ref ref="A1" />
 
</root>
</log4net>

这个配置文件将日志输出到控制台上.
6.在需要将调试信息写入日志的地方,可以使用类似下面的语句:
log.Debug(String.Format("background at={0} last={1}", 变量一, 变量二));

三.功能设定

1.log4将日志功能划分为如下几个层次:
logger:日志信息的来源,缺省为root.可以设定为命名空间加类名的形式.
appender:日志的输出媒介,可以是控制台或者文件.
layout:日志的输出格式.常用的是log4net.Layout.PatternLayout.
Filter:把某些行日志从输出中过滤掉.

2.如果希望只在某个特定类中输出调试信息的话,可以加入特定的logger:

 <root>
  
<level value="Info" />
  
<appender-ref ref="A1" />
 
</root>
 
<logger name="StringGrid.CanvasView">
  
<level value="Debug" />
  
<appender-ref ref="A1" />
 
</logger>

3.如果想将日志写入文件,可以在配置文件中加入如下内容:

 <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  
<file value="example.log" />
  
<appendToFile value="true" />
  
<maximumFileSize value="100KB" />
  
<maxSizeRollBackups value="2" />
  
<layout type="log4net.Layout.PatternLayout">
   
<conversionPattern value="%level %thread %logger – %message%newline" />
  
</layout>
 
</appender>

4.也可以让一个源输出到多个记录中:

 <root>
  
<level value="Info" />
  
<appender-ref ref="A1" />
  
<appender-ref ref="RollingFile" />
 
</root>

5.如果想将日志写入windows的EventLog,可以使用EventLogAppender.

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏