从上次写完总结已经过去很久了,上次说接着会写log4net相关的简单应用,不过这么久过去后,其中许多知识点已经不再清楚。幸好现在的Internet比较发达,在网络搜索相关的知识,再加上自己的回忆,赶紧写下来,免得下次又忘记了
Log4net:官方网址是http://logging.apache.org/log4net/,开源软件。如它的名字和介绍所说,它是用来记录日志的工具。原本的框架是log4j,现在适用于.net环境。可以在网站上下到包括源代码在内的所有文档,自己编译,然后使用生成的dll;或者,也可以使用它已经编译好的log4net.dll,用起来很简单。可以参照它提供例子。
log4net也需要配置XML文件,这个是能否正确使用的关键所在。该XML文件中定义了log的名称,如何捕获,捕获后的日志以什么形式、存储在哪里,如果是以文件存储,还可以规定该日志文件的大小。这些XML信息既可以单独的放在一个XML文件中,也可以放在web项目的配置文件中。
以下说一下log4net中的一些概念。
首先是logger,它是日志记录对象;其次是appender,它是日志记录的目标,比如控制台,文件,远程广播等。使用log4net的过程也就是获得一个用来记录日志的对象logger,然后指定日志的记录位置,然后在应用程序中引用这个logger,那么日志信息就会 被记录下来。
XML信息,如前边所述,其中描述了logger、appender等信息,这个XML信息并不好写,容易出错。当时我写的时候就因为格式问题,一直无法记录日志信息。这里给出一个写入web.config中的XML信息的格式。
先在web.config中配置<configuration>节点
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="false"> //是否允许调试
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
//该appender的名字 ,在应用程序中调用时,即使用该名称;其type字段表明了不通的appender。随后的节点定义了该appender相关的参数
<param name="File" value="c:/Applog.txt" /> //表示该appender的目标是C:/Applog.txt文件。
<param name="datePattern" value="yyyy-MM-dd HH:mm" />
//该参数表示记录日期时的格式。
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
//这一系列参数表明的也是日志记录的格式,如是否记录进城名等等。具体的含义查询一下log4net的文档。
</layout>
</appender>
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender" >
//另外一个appender,log4net中允许多个appender
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:/Log.txt" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" value="5MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" /> //这里定义了日志记录的等级,log4net中包括debug、info、warning等共5种,指定了level后,凡是高于该等级的日志信息才会被记录下来。
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
这里只是定义日志的使用和格式。具体的使用,下篇再说