就我所知现在日志管理框架有多种如 Enterprise、NLog、CLog、Log4net,其中Log4net功能强大适用于中大型的项目日志管理,NLog虽然功能较少但是它使用简单,而且支持智能感应,另外Enterprise更是强大的没的说,针对于大型系统开发,当然使用也比较困难。但是考虑到它们的使用资源及功能的强大,最后我们的项目确定了使用Log4net,所以接下来将会主要讨论Log4net的主要使用方法。
一、Log4net组成及配置
从Log4net的API文档中不难看出,其实Log4net的开发过程还是蛮简单的,并没有想象中的那么复杂,而且在使用时只需要添加相应的配置节信息然后调用存储方法即可实现日志的存储,具体的结构如下图
1.1 组成详解
上图显示了Log4net的主要由五个部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders,其中最主要的Appender命名空间中封装了日志的存储方式,也就是说通过配置Appender能够将日志输出到执行的类型中;Layout其实是封装了数据显示的格式,通过配置Layout能够输出指定模板的数据信息,它还可以控制数据的输出类型(输出xml还是文本类型);Object Renders很重要,它能够控制数据的自定义输出,log4net将会按照用户定义的标准输出日志。
1.2 配置方法
在使用log4net时首先需要配置日志存储方式,然后在代码中调用LogManager类的静态方法GetLog保存对象的对象的信息。其中配置信息可以写到config文件内,也可以自定义一个xml文档,把具体的配置节信息写到xml文件即可。二、使用方法
log4net有多重存储级别,按照日志信息的情况大致分为了5类,它们分别是Error错误日志、Fatal严重错误日志、Info一般信息日志、Debug调试信息日志和Warn警告信息日志,在日志管理时可以按照日志的级别来考虑存放的方式,对于严重日志往往是系统的重大问题,此时可以考虑存到服务器数据库中,其它的一些日志可以考虑存储到文件中,可以提高服务器性能。接下来将会介绍它的几种使用方法。
2.1 日志输出到DataBase
把日志输出到数据库中也是很多系统经常使用的日志存储方法,在小数据量的处理过程中将日志保存到数据库中是可行的,但是如果需要处理的日志数据量较大那么这种存储方法就会降低数据库的性能,所以在存储日志时慎重使用这种方式,建议涉及到系统重大问题时采用此种存储方式,这样会提升数据库的性能。具体配置如下:
<appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1"></bufferSize>
<connectionType value=