首页 > 代码库 > 【.NET】log4net配置文件解析
【.NET】log4net配置文件解析
Log4Net是一个开源日志记录组件,将log4net.dll引入到项目References中,通过它可以将.net应用程序的日志记录到多种介质之中,并且我们还可以设置和标示日志的级别等。
然后我们从配置文件入手,我们可以将配置写在web.config中,也可以写到一个单独的配置文件中,可以命名为log4net.config.使用log4net需要知道其中两个比较重要的概念:logger 和 appender。logger是日志记录对象,后者是日志记录的目标也就是控制台,文件,数据库等。使用时,先获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置.这就是配置文件为我们做好的事.
先看一个我写好的配置.
我将配置文件写在了一个单独的文件中,这样有两点好处:
l 不需要重新编译源代码就能改变配置;
2 可以在程序正运行的时候就改变配置。(这一点在一些Web程序和远程过程调用的程序中很重要)
后来因为我们的ITOO项目太大,这样写配置文件需要多个子系统分别维护,我就把做的这部分放到了资源文件中,和项目一起打包成dll,统一让各系统引用.这样一来改变配置文件需要重新引用,不过比起多方维护,更能减少出错.
我在这里配置了多个logger,各系统调用时传来不同的参数,即loggerName,就可以实现每个系统的异常将被写入到单独的文件中或数据库表中.
如
1.将异常日志写到文件
<!--权限系统--> <logger name="AuthoritySystem"> <level value=http://www.mamicode.com/"ALL"/>>
log4net.Layout.PatternLayout中的转换模式在上面的文件中作了解释,(ConversionPattern)
%m(message):输出的日志消息,如ILog.Debug(?)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN?等
%c(class):当前日志对象的名称
2.将操作日志写入到数据库
<!--权限系统--> <logger name="AuthoritySystem"> <level value=http://www.mamicode.com/"Info"/>>Log4net默认数据表中有Datetime,Thread,Log_Level,Logger,Message这五个字段,我的数据库名为Log,表名为各系统名,按照系统日志记录要求,又加了id,userid,username,ip,clazz,method,result几个字段.数据表结构现在是12个字段,提前在数据库定义.
<bufferSizevalue=http://www.mamicode.com/"1"/>
该属性设置缓存区大小, 1表明有1条日志就写入数据库, 如果是10就表示日志到达10条时一起写入.
Log4net使用过程中关于配置文件的内容就先写到这里,更多内容下一篇博客
<<Log4net将操作日志写入数据库>> 敬请期待.
【.NET】log4net配置文件解析