当配置文件写好之后,现在,是该将log4net用到我们的程序中的时候了。
有两种情况使用配置文件:
1、使用.net的Application配置文件,这时,配置文件的名称就是assemblyname.config,这个符合.net的配置文件的命名规范,
这时,如前所说,需要加入/configuration/configSection/section这个项。然后加入<log4net>项;
2、使用自定义的配置文件,这时,文件名称可以自定义,不过配置文件中一定要有<log4net>项。
默认情况下,每一个独立的可执行的assembly定义个一个属于它自己的配置设置。log4net框架使用
log4net.Config.DOMConfiguratorAttribute在assebly级设置配置文件,这个特性有三个属性:
1、ConfigFile:如果使用的是自定义的配置文件,那么就需要指定文件全名;
2、ConfigFileExtension:如果使用的不是application的配置文件的默认扩展名,那么需要指定这项;
3、Watch(bool):这个属性告诉log4net是否在运行时监视配置文件的改动。如果设置为true,那么log4net的类
FileSystemWatcher就会监视文件的修改,重命名以及删除,并发出通知。
DOMConfiguratorAttribute的配置代码如下:
[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename", ConfigFileExtension="ext",Watch=true/false)]
如果没有定义ConfigFile或ConfigFileExtension属性,那么log4net将会去查找Application配置文件。所以,如果我们使用
Application配置文件,那么只需要写如下代码就可以了:
[assembly: log4net.Config.DOMConfigurator()]
有另外一种方法,可以不用DOMConfiguratorAttribute。那就是使用DOMConfigurator类来载入配置文件。
如下代码:
log4net.Config.DOMConfigurator.Configure(new FileInfo("Log4netApp.exe.Config"));
同样也有另一个方法:ConfigureAndWatch(...)配置log4net去监视配置文件的改动。
配置文件已经载入了,我们该如何使用呢?
1、创建一个Logger或者获取在配置文件中配置好的Logger。例如:
log4net.ILog log = log4net.LogManager.GetLogger("Logger_Name");
如果Logger_Name不在配置文件中,那么如前所说,log4net将会依据<root>的配置创建一个新的Logger。
2、使用Logger去调用Logger的方法。你能通过Logger的等级标记属性IsXXXEnabled的方法判断Logger是否可以执行相关等级的方法,例如:
if(log.IsDebugEnabled) log.Debug("Message");
if(log.IsInfoEnabled) log.Info("Message");
这里有一个简单的应用例子,该例子在log4net-1.2.0-beta8下编译运行通过。
点击下载
浙公网安备 33010602011771号