您的位置:首页 > 其它

WinForm中log4net配置说明和使用一

2010-06-11 23:14 639 查看
由于最近在WinForm项目中用到log4net便查阅了相关资料。但发现关于log4net的文章很多,但说的太简陋了,经过实践后现把总结一下。内容如下:

1.log4net的介绍

log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。使用log4net需要知道其中两个比较重要的概念:logger 和 appender。前者是日志记录对象,后者是日志记录的目标载体,包括控制台,文件,定量大小的文件,远程广播。log4net的工作原理简单地说是这样的:获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置。值得一提的是这一切工作都可以在应用程序的配置文件中完成,所需代码量极少。

2.配置文件说明

简单的拿一个配置文件来举例说明:--后边的文字表示注释内容

<configuration>
<configSections> --在配置选项中加入log4net的引用
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="LogFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="log.txt" /> --定义用文件来保存日志,生成的文件log.txt和应用程序生成的exe文件在同一目录下。
<param name="AppendToFile" value="false" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">--定义输出风格
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>

<appender>

--一个配置文件可以有很多appender,一个appender节就相当于一个日志输出介质或方法。

</appender>
<logger name="logApp"> --定义logger对象的名字为logApp,以方便在代码中使用,<logger>配置项可以不配置
<level value="ALL" />--定义输出的信息等级为所有其中包括Fatal.Error.Warn.Info.Debug
</logger>
<root>--定义日志输出的方式和等级
<level value="INFO" />
<appender-ref ref="LogFile" />--选择了文件输出,注意粗体部分对应的名称
</root>
</log4net>
</configuration>

3.Log4net的使用。

使用步骤:

在项目中添加log4net.dll的引用。

关联配置文件。

创建Ilog实例,便可以使用了。

说明:关联配置文件一般是通过在AssemblyInfo.cs文件里添加以下的语句

[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename", ConfigFileExtension="ext",Watch=true/false)] 参数可以省略

ConfigFile:指出了我们的配置文件的路径及文件名,包括扩展名。可省略

ConfigFileExtension:如果我们对被编译程序的程序集使用了不同的文件扩展名,那么我们需要定义这个属性,缺省的,程序集的配置文件扩展名为”config”。

Watch (Boolean属性): log4net框架用这个属性来确定是否需要在运行时监视文件的改变。如果这个属性为true,那么FileSystemWatcher将会被用来监视文件的改变,重命名 ,删除等事件。

创建实例的方法:

Log4net框架定义了一个叫做LogManager的类,用来管理所有的logger对象。它有一个GetLogger()静态方法,用我们提供的名字参数来检索已经存在的Logger对象。如果框架里不存在该Logger对象,它也会为我们创建一个Logger对象。如:ILog log = LogManager.GetLogger("logApp") //logApp是配置文件中<logger>定义的name属性值。

我们会以类(class)的类型(type)为参数来调用GetLogger(),以便跟踪我们正在进行日志记录的类。传递的类(class)的类型(type)可以用typeof(Classname)方法来获得。

如:ILog log = LogManager.GetLogger(this.GetType())//this.GetType()只限于部分地方可以这样写,最好用typeof(classname)。

最后就可以使用创建后的实例了。如:log.Info("执行××××方法开始"), log.Error("****")等

到此你就可以轻松使用log4net了,下一篇会给出一些配置信息的详细说明。欢迎大家提出建议。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: