Log4Net培训.doc

上传人:赵** 文档编号:50947820 上传时间:2022-10-16 格式:DOC 页数:8 大小:1.30MB
返回 下载 相关 举报
Log4Net培训.doc_第1页
第1页 / 共8页
Log4Net培训.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《Log4Net培训.doc》由会员分享,可在线阅读,更多相关《Log4Net培训.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2022年-2023年建筑工程管理行业文档 齐鲁斌创作Log4Net培训文档目录一.概述1二.Log4Net系统11程序结构1ILogger1IIAppender2IIILayout5IVFilter62日志级别6三.Log4Net的使用方法71编写配置信息72配置初始化73获得记录器74使用记录器进行记录7四.扩展Log4Net81对FileAppender和RollingLogFileAppender81对RollingLogFileAppender82对SmtpAppender8五.实例演示8一. 概述Log4Net是一开源软件。本文档对log4net的使用进行描述。二. Log4Net

2、系统1 程序结构我们在使用Log4Net的时候,主要关注如下几个部分: I Logger日志记录器,我们在程序里使用这个管理器来进行日志记录操作。在一份程序里可以有多个logger,每个logger都可以在配置文件控制,通过程序调用。比如在配置文件里配置: 则在程序里,我们可以这样获得这个记录器:private static log4net.ILog log = log4net.LogManager.GetLogger(MailLogger);得到记录器之后,我们可以通过如下方法记录日志。log.Error(message, e)log.Error(message)log.Debug(mess

3、age, 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) II Appender日志记录设备,指我们希望把日志记录到数据库/文件,或者发邮件等,每种方式都有一个独立的Appender实现。Appender通常都在配置文件里进行控制,对于我们来说,在程序里不显式使用,它由logger调用。如在配置文件里定义: 当我们进行了这样的定义之后,只是说明了我们有了这个Appender,会

4、不会使用这个Appender,则由logger配置节控制。要使用这个Appender,在looger里设置: 则这个Appender会在写日志的时候调用。多个Appender可以同时被一个logger使用,即一份日志可以保存到多个设备上。定义一个appender,需要指定属性及参数,如下介绍常用的RollingLogFileAppender和SmtpAppender的定义。Appender属性:属性名描述name必选项,可随意起名字,被logger配置引用type必选项,必须是Appender已定义类型,如log4net.Appender.RollingFileAppenderRollingL

5、ogFileAppender(文件记录)参数:参数名描述filter可以有0或多个filter,具体配置在下面的Filter项说明。 layout可以有0或者说1个layout,当没有layout时,没有输出。具体配置在下面的layout项说明paramParam有多个可以进行配置,常用的:名称描述File文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录RollingStyle创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件

6、),Composite(按日期及文件大小),默认为CompositeDatePattern当RollingStyle为Composite或Date,这里设置文件名格式StaticLogFileNameTrue/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。MaximumFileSize当RollingStyle为Composite或Size,这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)CountDirection默认值为-1。当文件超过MaximumFileSi

7、ze的大小时,如果要创建新的文件来存储日志,会根据CountDirection的值来重命名文件。大于-1的值时,file里指定的文件名会依次加上.0,.1,.2递增。当等于或小于-1时,创建依赖于MaxSizeRollBackups参数值,创建备份日志数。MaxSizeRollBackups备份日志数目,默认为0。在CountDirection为负数时有效。Threshold起始日志级别,取值为下面文章讨论的预定义日志级别。低于此级别的日志不会被记录。AppendToFileTrue/false,默认为true。当文件存在时,是否在原文件上追加内容。例如: SmtpAppender(邮件通知)

8、 参数:参数名描述filter可以有0或多个filter,具体配置在下面的Filter项说明。 layout可以有0或者说1个layout,当没有layout时,没有输出。具体配置在下面的layout项说明paramParam有多个可以进行配置,常用的:名称描述authentication默认为none,可选basic和NtlmsmtpHostusernamepasswordfrom发送人邮件地址to接收人邮件地址subject邮件主题Priority邮件优先级。默认为Normal,可设置为HighbufferSize日志缓冲器大小,默认值为512。当设置为小于2的值时,等于没有缓冲器。一旦日

9、志数量达到缓冲器大小时,程序会把日志全部发出去。evaluator估算器,当估算器里的条件成立时,会马上把缓冲器里的日志发送出去。语法如下: Log4net只预定义了一个Level估算器,我们可以改变threshold的等级起始值。意思为:当级别在debug或以上时,会立即把日志内容发送邮件。lossyTrue/false,默认为false。触发事件是否会有可能丢失,取决于这个值。当为true时,必须指定evaluator,以便有“可能丢失的触发事件”。比如这个值为true时,当缓冲到达,同时有符合evaluator的触发条件时,会把触发事件丢弃。例如: III Layout日志布局设计器,指

10、我们希望输出哪些数据,这些数据又以什么样的格式输出。Layout通常都在配置文件里进行控制,对于我们来说,在程序里不显式使用,它由Appender调用。并且在Appender配置节里进行定义。 每个appender对应一个layout。常用的layout:PatternLayout属性:属性名描述type必选项,必须是已定义类型,如log4net.Layout.PatternLayout 参数:属性名描述Footer日志的底部文字,自定义的字符串Header日志的头部文字,自定义的字符串ConversionPattern转换格式。所有数据都在这里输出。转换格式由三部分组成: 自定义字符串+%修

11、饰符+数据变量+自定义字符串数据变量:Conversion Pattern NameEffectAppdomain(a)Used to output the friendly name of the AppDomain where the logging event was generated. Date(d)%dateHH:mm:ss,fff or %datedd MMM yyyy HH:mm:ss,fff. exception异常 Level(p)当前级别 Logger(c)当前logger名称 Message(m)记录的信息 Newline(n)新行Timestamp(r)应用程序工作时

12、间Thread(t)线程名称或线程号码. utcdate%utcdateHH:mm:ss,fff or %utcdatedd MMM yyyy HH:mm:ss,fff. %The sequence % outputs a single percent sign. 修饰符:Format modifiercomment%20logger小于20字符时左填充%-20logger小于20字符时右填充. %.30logger大于30时截取%20.30logger小于20字符时左填充. 大于30时截取%-20.30logger小于20字符时右填充. 大于30时截取 IV Filter日志过滤器。除了级别

13、限制之外,我们还可以添加过滤器,以指示该日志是否需要记录。Filter通常都在配置文件里进行控制,对于我们来说,在程序里不显式使用,它由Appender调用。 一个appender可以有多个filter,按在配置文件里出现的次序进行检查。常用的有:LevelRangeFilterStringMatchFilter2 日志级别日志的级别可以在多个地方定义,appender参数里的Threshold属性定义的level,logger的level,root节点里的level,如果这三个地方均没有定义,则默认”Debug”级别。当这几个地方有两个以上定义了level,则按下表的优先级,取最高优先级的l

14、evel。此外,级别还受appender里定义的filter里的level范围限制。各个级别的优先级如下:级别代码级别描述优先级OFF关闭最高FATAL严重ERROR错误INFO信息DEBUG调试ALL全部最低三. Log4Net的使用方法1 编写配置信息Log4net的行为控制大多都可以在配置文件里完成,因此,编写配置信息是使用Log4net的必要步骤,同时也是最大的难点。配置文件可以在web.config里,也可以放在独立的文件中。2 配置初始化可在global程序启动事件里进行初始化。 void Application_Start(object sender, EventArgs e)

15、System.IO.FileInfo fileInfo = new System.IO.FileInfo(Server.MapPath(/SystemConfig/log4netConfig.xml); /log4net.Config. XmlConfigurator.Configure(fileInfo); log4net.Config.XmlConfigurator.ConfigureAndWatch(fileInfo);3 获得记录器private static log4net.ILog log = log4net.LogManager.GetLogger(MailLogger);4 使

16、用记录器进行记录log.Error(message, e);四. 扩展Log4Net1 对FileAppender和RollingLogFileAppender可在File配置节里用#开头,头一个下斜杠之前的字符表示虚拟目录路径如,则up表示虚拟目录注:如虚拟目录不存在,则视为站点根目录下的文件夹2 对RollingLogFileAppender可在DatePattern配置节里设置#Disk_HostName,用以替换本地机器名称如:3 对SmtpAppender可在subject配置节里设置#Disk_HostName,用以替换本地机器名称如:五. 实例演示示例源代码:参考资料:1, Log4net源代码2, Log4net SDK3, Log4net Manual4, Log4net 文章(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁