Log4Net培训文档目录一.概述...................................................................................................................1二.Log4Net系统....................................................................................................11程序结构...........................................................................................1ILogger..........................................................................................1IIAppender....................................................................................2IIILayout.......................................................................................5IVFilter..........................................................................................62日志级别...........................................................................................6三.Log4Net的使用方法........................................................................................71编写配置信息...................................................................................72配置初始化.......................................................................................73获得记录器.......................................................................................74使用记录器进行记录.......................................................................7四.扩展Log4Net....................................................................................................81对FileAppender和RollingLogFileAppender..................................81对RollingLogFileAppender..............................................................82对SmtpAppender..............................................................................8五.实例演示...........................................................................................................8一.概述Log4Net是一开源软件。本文档对log4net的使用进行描述。二.Log4Net系统1程序结构我们在使用Log4Net的时候,主要关注如下几个部分:ILogger日志记录器,我们在程序里使用这个管理器来进行日志记录操作。在一份程序里可以有多个logger,每个logger都可以在配置文件控制,通过程序调用。比如在配置文件里配置:loggername=MailLoggerlevelvalue=debug/appender-refref=SmtpAppender/appender-refref=RollingLogFileAppender//logger则在程序里,我们可以这样获得这个记录器:privatestaticlog4net.ILoglog=log4net.LogManager.GetLogger(MailLogger);得到记录器之后,我们可以通过如下方法记录日志。log.Error(message,e)log.Error(message)log.Debug(message,e)log.Debug(message)log.Warn(message,e)log.Warn(message)log.Fatal(message,e)log.Fatal(message)log.Info(message,e)log.Info(message)IIAppender日志记录设备,指我们希望把日志记录到数据库/文件,或者发邮件等,每种方式都有一个独立的Appender实现。Appender通常都在配置文件里进行控制,对于我们来说,在程序里不显式使用,它由logger调用。如在配置文件里定义:appendername=RollingLogFileAppendertype=log4net.Appender.RollingFileAppender/appender当我们进行了这样的定义之后,只是说明了我们有了这个Appender,会不会使用这个Appender,则由logger配置节控制。要使用这个Appender,在looger里设置:loggername=MailLoggerappender-refref=RollingLogFileAppender//logger则这个Appender会在写日志的时候调用。多个Appender可以同时被一个logger使用,即一份日志可以保存到多个设备上。定义一个appender,需要指定属性及参数,如下介绍常用的RollingLogFileAppender和SmtpAppender的定义。Appender属性:属性名描述name必选项,可随意起名字,被logger配置引用type必选项,必须是Appender已定义类型,如log4net.Appender.RollingFileAppenderRollingLogFileAppender(文件记录)参数:参数名描述filter可以有0或多个filter,具体配置在下面的Filter项说明。layout可以有0或者说1个layout,当没有layout时,没有输出。具体配置在下面的layout项说明paramParam有多个可以进行配置,常用的:名称描述File文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录RollingStyle创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为CompositeDatePattern当RollingStyle为Composite或Date,这里设置文件名格式StaticLogFileNameTrue/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。MaximumFileSize当RollingStyle为Composite或Size,这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)CountDirection默认值为-1。当文件超过MaximumFileSize的大小时,如果要创建新的文件来存储日志,会根据CountDirection的值来重命名文件。大于-1的值时,file里指定的文件名会依次加上.0,.1,.2递增。当等于或小于-1时,创建依赖于MaxSizeRollBackups参数值,创建备份日志数。MaxSizeRollBackups备份日志数目,默认为0。在CountDirection为负数时有效。Threshold起始日志级别,取值为下面文章讨论的预定义日志级别。低于此级别的日志不会被记录。AppendToFileTrue/false,默认为true。当文件存在时,是否在原文件上追加内容。例如:paramname=Filevalue=UpLoads\\Log\\/paramname=MaximumFileSizevalue=3000/paramname=StaticLogFileNamevalue=false/paramname=Thresholdvalue=Debug/paramparamname=DatePatternvalue=yyyyMM"\\#{ServerHostName}-"yyyyMMdd".log"/paramname=RollingStylevalue=Date/SmtpAppender(邮件通知)参数:参数名描述filter可以有0或多个filter,具体配置在下面的Filter项说明。layout可以有0或者说1个layout,当没有layout时,没有输出。具体配置在下面的layout项说明paramParam有多个可以进行配置,常用的:名称描述authentication默认为none,可选basic和NtlmsmtpHostusernamepasswordfrom发送人邮件地址to接收人邮件地址subject邮件主题Priority邮件优先级。默认为Normal,可设置为HighbufferSize日志缓冲器大小,默认值为512。当设置为小于2的值时,等于没有缓冲器。一旦日志数量达到缓冲器大小时,程序会把日志全部发出去。evaluator估算器,当估算器里的条件成立时,会马上把缓冲器里的日志发送出去。语法如下:evaluatortype=log4net.Core.LevelEvaluatorthresholdvalue=Debug//evaluatorLog4net只预定义了一个Level估算器,我们可以改变threshold的等级起始值。意思为:当级别在debug或以上时,会立即把日志内容发送邮件。lossyTrue/false,默认为false。触发事件是否会有可能丢失,取决于这个值。当为true时,必须指定evaluator,以便有“可能丢失的触发事件”。比如这个值为true时,当缓冲到达,同时有符合evaluator的触发条件时,会把触发事件丢弃。例如:authenticationvalue=Basic/tovalue=yuzj@richinfo.cn/fromvalue=yuzj@richinfo.cn/usernamevalue=yuzj@richinfo.cn/passwordvalue=13430822011/subjectvalue=testloggingmessage/s