Log4net教程

一.概述

使用可靠地第三方类库,比自己重新编写好得多。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.
最后编辑卡卡 最后编辑于 2007-05-11 20:28:27