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为止

  1. <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  2. <!--日志文件名-->
  3. <file value="log.txt"/>
  4. <!--是否在文件中追加-->
  5. <appendToFile value="true"/>
  6. <!--按照文件的大小进行变换日志文件-->
  7. <rollingStyle value="Size"/>
  8. <!--最大变换数量-->
  9. <maxSizeRollBackups value="10"/>
  10. <!--最大文件大小-->
  11. <maximumFileSize value="100KB"/>
  12. <!--日志文件名是否为静态-->
  13. <staticLogFileName value="true"/>
  14. <layout type="log4net.Layout.PatternLayout">
  15. <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
  16. </layout>
  17. </appender>

下面的例子以时间周期变换日志文件名,每分钟都改变日志的文件名,日志文件名为logfileyyyyMMdd-HHmm,这里补充说明下,如果要在这个文件名后面加上.log后缀,必须使用转义字符,比如<datePattern value="yyyyMMdd-HHmm&quot;.log&quot;" />

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2. <!--日志文件名开头-->
  3. <file value="logfile" />
  4. <!--是否追加到文件-->
  5. <appendToFile value="true" />
  6. <!--变换的形式为日期-->
  7. <rollingStyle value="Date" />
  8. <!--日期的格式-->
  9. <datePattern value="yyyyMMdd-HHmm" />
  10. <layout type="log4net.Layout.PatternLayout">
  11. <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  12. </layout>
  13. </appender>

下面的例子综合使用使用日期和文件大小变换日志文件名。

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2. <!--日志文件名开头-->
  3. <file value="logfile" />
  4. <!--是否追加到文件-->
  5. <appendToFile value="true" />
  6. <!--混合使用日期和文件大小变换日志文件名-->
  7. <rollingStyle value="Composite" />
  8. <!--日期的格式-->
  9. <datePattern value="yyyyMMdd" />
  10. <!--最大变换数量-->
  11. <maxSizeRollBackups value="10" />
  12. <!--最大文件大小-->
  13. <maximumFileSize value="1MB" />
  14. <layout type="log4net.Layout.PatternLayout">
  15. <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  16. </layout>
  17. </appender>

下面例子是在每次程序运行的时候,都会备份原先的日志文件,当运行的日志文件大于50G的时候才会变换日志文件名。

  1. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  2. <!--日志文件名-->
  3. <file value="logfile.txt" />
  4. <!--不追加到原文件-->
  5. <appendToFile value="false" />
  6. <!--以日志文件大小变换文件名-->
  7. <rollingStyle value="Size" />
  8. <!--最大变换数量,-1为不限制-->
  9. <maxSizeRollBackups value="-1" />
  10. <!--最大文件大小-->
  11. <maximumFileSize value="50GB" />
  12. <layout type="log4net.Layout.PatternLayout">
  13. <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  14. </layout>
  15. </appender>

下面是RollingFileAppender类中的部分Public Instance Properties(公共属性)的说明,没有全部测试,难免谬误,如果你知道,请不要吝啬告写。
CountDirection : 定义当前文件是最小编号的文件还是最大编号的文件。默认为-1,总是以更小的编号。
datePattern : DateFormatter日期格式,string类型。
Encoding : 就是文件的编码,默认为Default,就是程序本身的编码了。
FilterHead : 分割符头部。
ImmediateFlush : 表示是否立即输出到文件,布尔型的。
LockingModel : 文件锁类型,RollingFileAppender本身不是线程安全的,如果在程序中没有进行线程安全的限制,可以在这里进行配置,确保写入时的安全。有两中类型:FileAppender.ExclusiveLockFileAppender.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的更多相关文章

  1. 【转载】[C#]Log4net中的RollingFileAppender解析

    Log4日志组件的应用确实简单实用,在比较了企业库和Log4的日志功能后,个人觉得Log4的功能更加强大点.补充说明下,我使用的企业库是2.0版本,Log4net是1.2.1版本的. 在Log4net ...

  2. 在C#代码中应用Log4Net(三)Log4Net中配置文件的解释

    一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...

  3. 在C#代码中应用Log4Net 中配置文件的解释

    一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...

  4. [转]Log4Net中配置文件的解释

    FROM:http://www.cnblogs.com/kissazi2/p/3392605.html 一个完整的配置文件的例子如下所示 <log4net> <!-- 错误日志类-- ...

  5. Log4Net中配置文件的解释

    一个完整的配置文件的例子如下所示 <log4net> <!-- 错误日志类--> <logger name="logerror"> <le ...

  6. 比如在vi中按ctrl+z

    比如在vi中按ctrl+z有个命令可以恢复会话,我忘了,大家谁记得?   分享到: 对我有用[0] 丢个板砖[0] 引用 | 举报| 编辑 删除 管理 回复次数:8   hellwolf hellwo ...

  7. Log4Net在Windows服务中不能记录日志 z

    解决方案: 在Windows安装服务的“serviceProcessInstaller1”中修改Account属性为LocalSystem.见下图 后来查了一下这个Account属性 说白了还是权限的 ...

  8. Log4net中换行符

    在log4net节点中 <appender name="DebugLogFileAppender" type="log4net.Appender.FileAppen ...

  9. Log4net中的调错

    在使用log4net时,感觉最麻烦的就是配置文件了,为了使用方便,我不得不先准备好一个完整的配置文件方案,测试了输出到文本.控制台.windows事件.SQL Server数据库都没有问题,但输出到o ...

随机推荐

  1. 自然语言处理2.1——NLTK文本语料库

    1.获取文本语料库 NLTK库中包含了大量的语料库,下面一一介绍几个: (1)古腾堡语料库:NLTK包含古腾堡项目电子文本档案的一小部分文本.该项目目前大约有36000本免费的电子图书. >&g ...

  2. 怎么用ABBYY打开PDF文档

    我们日常工作中接触的文档大多都是PDF格式的,这种格式的文件需要借助工具才能打开,大家最熟悉的无非就是Adobe了,但你知道吗?除了Adobe,OCR文字识别软件也可以打开PDF文档,比如ABBYY ...

  3. 怎么用CorelDRAW插入、删除与重命名页面

    在绘图之前,页面的各种设置也是一项重要的工作,本文主要讲解如何在CorelDRAW中插入.删除.重命名页面等操作.在CorelDRAW的绘图工作中,常常需要在同一文档中添加多个空白页面,删除一些无用的 ...

  4. 二十四种设计模式:组合模式(Composite Pattern)

    组合模式(Composite Pattern) 介绍将对象组合成树形结构以表示"部分-整体"的层次结构.它使得客户对单个对象和复合对象的使用具有一致性.示例有一个Message实体 ...

  5. System.Web.HttpContext.Current 跟踪分析

    public static HttpContext Current { get { return ContextBase.Current as HttpContext; } set { Context ...

  6. unity, 由unity5.2.1升级到5.4.2物体变亮解法

    由unity5.2.1升级到5.4.2之后,使用standard shader的物体会变亮. 原因如图: 框中两项是5.4.2多出来的,如果把specular Highlights的勾选去掉,就跟以前 ...

  7. SpringMVC+Apache Shiro+JPA(hibernate)

    http://my.oschina.net/moziqi/blog/305412 http://my.oschina.net/miger/blog/283526 spring4.1.0+spring ...

  8. MySQL 利用SQL线程对Binlog操作(转)

    背景: 对于MySQL的binlog的查看都是用其自带的工具mysqlbinlog进行操作的,其实还有另一个方法来操作binlog,就是Replication中的SQL线程去操作binlog,其实bi ...

  9. Hive(四):c#通过odbc访问hive

    hive odbc 驱动配置成功后,通过c#访问就变得比较简单了,分为查询与更新操作,直接附上测试代码.在此过程中需要注意c#工程编译的目标平台 读写访问代码示例: public class Hive ...

  10. Python基础教程【读书笔记】 - 2016/7/18

    希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第七波:第3章 字符串 介绍如何使用字符串格式化其他的值,并简单了解一下利用字符串的分割.联接.搜索等方法能做些什么. ...