一 . 概述
使用可靠地第三方类库,比自己重新编写好得多。 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.
原文 :http://www.cnblogs.com/fujingqiu/archive/2006/11/12/558152.html