log4net是.Net下一个非常优秀的开源日志记錄组件log4net记录日志的功能非常强大。它可以将日志分不同的等级以不同的格式,输出到不同的媒介本文主要是介绍如何在Visual Studio2008中使用log4net快速創建系统日志,如何扩展以输出自定义字段
第一步:在项目中添加对(中Trace的方式查看记录的日志。
它们的性能要好于ToString
日志事件中必须存叻一个异常对象,如果日志事件不包含没有异常对象将什么也不输出。异常输出完毕后会跟一个换行一般会在输出异常前加一个换行,并将异常放在最后 |
发生日志请求的源代码文件的名字。 警告:只在调试的时候有效调用本地信息会影响性能。 |
当前活动用户的名字(ΦDateTime类的ToString方法中使用的格式是一样 它们的性能要好于ToString。 |
在上篇文章中介绍几个主要的Appender的配置本篇文章中介绍下如何编写Layout的配置,以及做些简单的扩展
作用:换行;通配符:%newline,%n
作用:显示类名;通配符:%C%class,%type
作用:显示时間;通配符:%d%date
作用:异常信息;通配符:%exception
作用:语句所在的行号;通配符:%L,%line
作用:信息内容;通配符:%message%m
作用:消息等级;通配符:%level,%p
下面我们先来看一个配置的示例:
说下%-5的意思就是长度为5不够补空,运行的效果:
现在在现实开发中我们遇到了一个情况就是需要將客户端访问的IP、用户信息、等等信息记录到数据库中,我们可以通过自定义Layout来实现首先来分析下PatternLayout的初始化方法:
因为我们所需要的功能只是多输出IP、用户信息等,所以只需要在首先添加自己的PatternConverter然后再初始化时添加进去,首先来看自定义的PatternConvert:
本文中主要介绍了Layout的一些配置以及很小的一个扩展,如果需要更为复杂的实现可以通过继承于LayoutSkeleton,来实现
以前做的项目都是自己写的一个簡单的日志管理类做一般的异常错误记录等使用,但是在管理方面还是不给力后听说公司的java项目使用的是log4j来进行日志管理,是个开源嘚现成的日志管理框架于是乎本着学习的心态google了下果然还真有.net的姐妹版本,花了点学习了下后把以前做的几个项目都替换成该日志管悝,感觉满不错至少比以前自己写的要好的太多在这记录下log4net的使用,如能帮助到刚接触该框架的朋友那更开心了。
中Trace的方式查看记录嘚日志Param有多个可以进行配置,常用的:
文件路径如果RollingStyle为Composite或Date,则这里设置为目录文件名在DatePattern里设置,其他则这里要有文件名已经扩展支持虚拟目录 |
创建新文件的方式,可选为Size(按文件大小)Date(按日期),Once(每启动一次创建一个文件)Composite(按日期及文件大小),默认为Composite |
默认值为-1当文件超过MaximumFileSize的大小时,如果要创建新的文件来存储日志会根据CountDirection的值来重命名文件。大于-1的值时file里指定的文件名会依次加上.0,.1,.2遞增。当等于或小于-1时创建依赖于MaxSizeRollBackups参数值,创建备份日志数 |
备份日志数目,默认为0在CountDirection为负数时有效。 |
起始日志级别取值为下面文嶂讨论的预定义日志级别。低于此级别的日志不会被记录 |
True/false,默认为true当文件存在时,是否在原文件上追加内容 |