log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。具体的使用方法往下看。
首先你应该下载log4net.dll并引入到你的项目References中,或者把源代码项目作为你工程的一部分加入到你的工程当中。单击 这里 下载Log4net 。
使用log4net需要知道其中两个比较重要的概念:logger 和 appender。前者是日志记录对象,后者是日志记录的目标,包括控制台,文件,定量大小的文件,远程广播。也就是说我们使用log4net的过程可以是这样的:获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置.美妙的是,这一切工作都可以在Web.config配置文件中完成,所用的代码极少.
其配置如下:
先在web.config中的<configuration>节点下添加如下配置:
用过web.config自定义节点的朋友都知道,还应该配置log4net节点,接下来在<configuration>节点下添加如下log4net节点配置:
从上面的配置中可以看到定义了多个appender,每一个appender就是一个日志记录的目标。root节点指定了选用哪一个 appender. 在这里我选用了LogFileAppender。
到这里配置就基本上完成了,但是怎么使用上面的配置呢?log4net为我们提供了在应用程序启动时加载配置信息的入口,很简单,在Global.asax.cs的Application_Start事件中添加如下代码:
好了,到此为止整个配置过程完成了。
首先你应该下载log4net.dll并引入到你的项目References中,或者把源代码项目作为你工程的一部分加入到你的工程当中。单击 这里 下载Log4net 。
使用log4net需要知道其中两个比较重要的概念:logger 和 appender。前者是日志记录对象,后者是日志记录的目标,包括控制台,文件,定量大小的文件,远程广播。也就是说我们使用log4net的过程可以是这样的:获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置.美妙的是,这一切工作都可以在Web.config配置文件中完成,所用的代码极少.
其配置如下:
先在web.config中的<configuration>节点下添加如下配置:
<
configSections
>
< section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</ configSections >
< section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</ configSections >
用过web.config自定义节点的朋友都知道,还应该配置log4net节点,接下来在<configuration>节点下添加如下log4net节点配置:
1
<
log4net
debug
="false"
>
2 < appender name ="LogFileAppender" type ="log4net.Appender.FileAppender" >
3 < param name ="File" value ="c:\Applog.txt" />
4 < param name ="datePattern" value ="yyyy-MM-dd HH:mm" />
5 < param name ="AppendToFile" value ="true" />
6 < layout type ="log4net.Layout.PatternLayout" >
7 < param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] - %m%n" />
8 </ layout >
9 </ appender >
10 < appender name ="HttpTraceAppender" type ="log4net.Appender.ASPNetTraceAppender" >
11 < layout type ="log4net.Layout.PatternLayout" >
12 < param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] - %m%n" />
13 </ layout >
14 </ appender >
15 < appender name ="EventLogAppender" type ="log4net.Appender.EventLogAppender" >
16 < layout type ="log4net.Layout.PatternLayout" >
17 < param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] - %m%n" />
18 </ layout >
19 </ appender >
20 < appender name ="RollingLogFileAppender" type ="log4net.Appender.RollingFileAppender" >
21 < param name ="File" value ="C:\Log.txt" />
22 < param name ="AppendToFile" value ="true" />
23 < param name ="MaxSizeRollBackups" value ="10" />
24 < param name ="MaximumFileSize" value ="5MB" />
25 < param name ="RollingStyle" value ="Size" />
26 < param name ="StaticLogFileName" value ="true" />
27 < layout type ="log4net.Layout.PatternLayout" >
28 < param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] - %m%n" />
29 </ layout >
30 </ appender >
31 < root >
32 < level value ="DEBUG" />
33 < appender-ref ref ="LogFileAppender" />
34 </ root >
35 </ log4net >
2 < appender name ="LogFileAppender" type ="log4net.Appender.FileAppender" >
3 < param name ="File" value ="c:\Applog.txt" />
4 < param name ="datePattern" value ="yyyy-MM-dd HH:mm" />
5 < param name ="AppendToFile" value ="true" />
6 < layout type ="log4net.Layout.PatternLayout" >
7 < param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] - %m%n" />
8 </ layout >
9 </ appender >
10 < appender name ="HttpTraceAppender" type ="log4net.Appender.ASPNetTraceAppender" >
11 < layout type ="log4net.Layout.PatternLayout" >
12 < param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] - %m%n" />
13 </ layout >
14 </ appender >
15 < appender name ="EventLogAppender" type ="log4net.Appender.EventLogAppender" >
16 < layout type ="log4net.Layout.PatternLayout" >
17 < param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] - %m%n" />
18 </ layout >
19 </ appender >
20 < appender name ="RollingLogFileAppender" type ="log4net.Appender.RollingFileAppender" >
21 < param name ="File" value ="C:\Log.txt" />
22 < param name ="AppendToFile" value ="true" />
23 < param name ="MaxSizeRollBackups" value ="10" />
24 < param name ="MaximumFileSize" value ="5MB" />
25 < param name ="RollingStyle" value ="Size" />
26 < param name ="StaticLogFileName" value ="true" />
27 < layout type ="log4net.Layout.PatternLayout" >
28 < param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] - %m%n" />
29 </ layout >
30 </ appender >
31 < root >
32 < level value ="DEBUG" />
33 < appender-ref ref ="LogFileAppender" />
34 </ root >
35 </ log4net >
从上面的配置中可以看到定义了多个appender,每一个appender就是一个日志记录的目标。root节点指定了选用哪一个 appender. 在这里我选用了LogFileAppender。
到这里配置就基本上完成了,但是怎么使用上面的配置呢?log4net为我们提供了在应用程序启动时加载配置信息的入口,很简单,在Global.asax.cs的Application_Start事件中添加如下代码:
log4net.Config.XmlConfigurator.Configure();
Application_Error事件添加如下代码:
using log4net;
ILog log = LogManager.GetLogger("Exception Log");
Exception objErr = Server.GetLastError().GetBaseException();
string err = "Error in: " + Request.Url.ToString() +
". Error Message:" + objErr.Message.ToString();
log.Error(err);