Log4net中的RollingFileAppender z
Log4日志组件的应用确实简单实用,在比较了企业库和Log4的日志功能后,个人觉得Log4的功能更加强大点.补充说明下,我使用的企业库是2.0版本,Log4net是1.2.1版本的.
在Log4net的应用上,已经有人做了说明分析了,在本文中,主要解析下Log4net中的RollingFileAppender的应用.
主要参考了Log4net的帮助文档.在项目中的log4net-1.2.10/doc文件下有.
RollingFileAppender主要是基于FileAppender构建的,很多属性方法都是继承于FileAppender,所以在选项设置上,也有许多是相同的.
下面的例子使日志文件名为log.txt,日志文件名是以文件大小进行变换的,如果旧日志文件大小到100KB时,就会变换文件名为log.txt.1,log.txt.2,log.txt.3...,一直到10为止
- <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
- <!--日志文件名-->
- <file value="log.txt"/>
- <!--是否在文件中追加-->
- <appendToFile value="true"/>
- <!--按照文件的大小进行变换日志文件-->
- <rollingStyle value="Size"/>
- <!--最大变换数量-->
- <maxSizeRollBackups value="10"/>
- <!--最大文件大小-->
- <maximumFileSize value="100KB"/>
- <!--日志文件名是否为静态-->
- <staticLogFileName value="true"/>
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
- </layout>
- </appender>
下面的例子以时间周期变换日志文件名,每分钟都改变日志的文件名,日志文件名为logfileyyyyMMdd-HHmm,这里补充说明下,如果要在这个文件名后面加上.log后缀,必须使用转义字符,比如<datePattern value="yyyyMMdd-HHmm".log"" />
- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <!--日志文件名开头-->
- <file value="logfile" />
- <!--是否追加到文件-->
- <appendToFile value="true" />
- <!--变换的形式为日期-->
- <rollingStyle value="Date" />
- <!--日期的格式-->
- <datePattern value="yyyyMMdd-HHmm" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
- </layout>
- </appender>
下面的例子综合使用使用日期和文件大小变换日志文件名。
- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <!--日志文件名开头-->
- <file value="logfile" />
- <!--是否追加到文件-->
- <appendToFile value="true" />
- <!--混合使用日期和文件大小变换日志文件名-->
- <rollingStyle value="Composite" />
- <!--日期的格式-->
- <datePattern value="yyyyMMdd" />
- <!--最大变换数量-->
- <maxSizeRollBackups value="10" />
- <!--最大文件大小-->
- <maximumFileSize value="1MB" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
- </layout>
- </appender>
下面例子是在每次程序运行的时候,都会备份原先的日志文件,当运行的日志文件大于50G的时候才会变换日志文件名。
- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <!--日志文件名-->
- <file value="logfile.txt" />
- <!--不追加到原文件-->
- <appendToFile value="false" />
- <!--以日志文件大小变换文件名-->
- <rollingStyle value="Size" />
- <!--最大变换数量,-1为不限制-->
- <maxSizeRollBackups value="-1" />
- <!--最大文件大小-->
- <maximumFileSize value="50GB" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
- </layout>
- </appender>
下面是RollingFileAppender类中的部分Public Instance Properties(公共属性)的说明,没有全部测试,难免谬误,如果你知道,请不要吝啬告写。
CountDirection : 定义当前文件是最小编号的文件还是最大编号的文件。默认为-1,总是以更小的编号。
datePattern : DateFormatter日期格式,string类型。
Encoding : 就是文件的编码,默认为Default,就是程序本身的编码了。
FilterHead : 分割符头部。
ImmediateFlush : 表示是否立即输出到文件,布尔型的。
LockingModel : 文件锁类型,RollingFileAppender本身不是线程安全的,如果在程序中没有进行线程安全的限制,可以在这里进行配置,确保写入时的安全。有两中类型:FileAppender.ExclusiveLock 和 FileAppender.MinimalLock
Name : 设置本Appander的名称。
SecurityContext : 比较少应用,对日志进行加密只类的,使用SecurityContextProvider转换。(对日志的保密要求比较高的时候应该可以应用上吧,Log4考虑的还挺周全)
Threshold : 设置内容级别的,比如:DEBUG,INFO等等。
在Log4net的配置中有两种方法是等价的:
<param name="File" value="log.txt" /> 和
<File value="log.txt" />
个人更倾向后者。在一些数据库上的应用时还有许多Param呢。
小结
Log4的应用远不止这些,帮助文件也是很详尽的,在程序级还是配置级都有相关例子。在整理了一个RollingFileAppender就花了我不少工夫。如果有机会接触到其他的内容,我会继续整理出来。
Log4net中的RollingFileAppender z的更多相关文章
- 【转载】[C#]Log4net中的RollingFileAppender解析
Log4日志组件的应用确实简单实用,在比较了企业库和Log4的日志功能后,个人觉得Log4的功能更加强大点.补充说明下,我使用的企业库是2.0版本,Log4net是1.2.1版本的. 在Log4net ...
- 在C#代码中应用Log4Net(三)Log4Net中配置文件的解释
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...
- 在C#代码中应用Log4Net 中配置文件的解释
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...
- [转]Log4Net中配置文件的解释
FROM:http://www.cnblogs.com/kissazi2/p/3392605.html 一个完整的配置文件的例子如下所示 <log4net> <!-- 错误日志类-- ...
- Log4Net中配置文件的解释
一个完整的配置文件的例子如下所示 <log4net> <!-- 错误日志类--> <logger name="logerror"> <le ...
- 比如在vi中按ctrl+z
比如在vi中按ctrl+z有个命令可以恢复会话,我忘了,大家谁记得? 分享到: 对我有用[0] 丢个板砖[0] 引用 | 举报| 编辑 删除 管理 回复次数:8 hellwolf hellwo ...
- Log4Net在Windows服务中不能记录日志 z
解决方案: 在Windows安装服务的“serviceProcessInstaller1”中修改Account属性为LocalSystem.见下图 后来查了一下这个Account属性 说白了还是权限的 ...
- Log4net中换行符
在log4net节点中 <appender name="DebugLogFileAppender" type="log4net.Appender.FileAppen ...
- Log4net中的调错
在使用log4net时,感觉最麻烦的就是配置文件了,为了使用方便,我不得不先准备好一个完整的配置文件方案,测试了输出到文本.控制台.windows事件.SQL Server数据库都没有问题,但输出到o ...
随机推荐
- Spring MVC静态资源处理——<mvc:resources /> ||<mvc:default-servlet-handler /> 转载
Spring MVC静态资源处理——<mvc:resources /> ||<mvc:default-servlet-handler /> mvcmvc:resources ...
- visual studio F12 失效,可能是装了插件,比如ReSharper 但是,ReSharper没有激活导致.
visual studio F12 失效,可能是装了插件,比如ReSharper 但是,ReSharper没有激活导致.
- 1.Nexus安装与配置
1.Nexus下载下载地址:http://www.sonatype.org/nexus/go/下载后的文件:nexus-2.11.4-01-bundle.zip安装:直接解压到某个目录即可解压后,会有 ...
- 简单配置IIS 以及web service 实现js跨域
因为浏览器的安全模型,js 是不能跨域的. 解决的方法有以下几种: 1. 使用代理服务转发 2. 目前服务器添加:Access-Control-Allow-Origin 3. 使用jsonp 4. 使 ...
- CI框架3.0关于session的设置改动及存数据库的使用方法
Session的设置跟之前有点不一样 我们来看看2.0版本中的设置是什么样子的: $config['sess_cookie_name']= 'test_session'; $config['sess_ ...
- Show a heart shaped
Windows Form application version: private void Form1_Load(object sender, EventArgs e) { ...
- shiro权限验证标签
实例: spring-shiro.xml /admin/repairType/index = roles["ROLE_ADMIN"] /admin/user=roles[" ...
- js/jquery 操作document对象
一.获取对象 //js获取的是dom对象,jquery获取的是jquery对象 //jquery对象可以输出dom对象,索引方式输出dom对象,eq()[]方式输出dom对象;eq()输出jquery ...
- VBA excel中表示列的字母换成数字
出自这里 数字转列标: Split(Cells(1,).Address(1,0),"$")(0) '将1-256替换红色的1就可以 Cells(1, a) 选中对应的第一行第 ...
- AngularJs中的directives(指令part1)
一.指令的职责 指令的职责是修改DOM结构,并将作用域和DOM连接起来.即指令既要操作DOM,将作用域内的数据绑定到DOM节点上,又要为DOM绑定事件调用作用域内的对应的方法. 二.创建自定义指令 ...