Log4net使用(一)

2021-07-04 15:06

阅读:346

标签:帮助文档   derby   static   自动删除   app   补充   osi   net   csdn   

转自:http://blog.csdn.net/much0726/article/details/3725563

转自:https://q.cnblogs.com/q/52302/

log4net,既要按日期分割日志文件,又要按文件大小分割。

--------------------------------------------------------------------

按照日期来分割日志的配置是这样:
















 

按日志容量分割日志文件的配置是这样:



















 

但是,我需求是,按照日期来写日志,并且每天当中,还要按照文件大小分割日志。

比如:

2013-7-15.txt

2013-7-15.txt.1

2013-7-15.txt.2

2013-7-15.txt.3

每个日志大小都不大于1000KB。

怎么还要加哪些属性?

-------------------------------------------------------------------------------------------------

------------------------------------------------------

[C#]Log4net中的RollingFileAppender解析

------------------------------------------------------

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

"RollingFileAppender" type="log4net.Appender.RollingFileAppender">  
        
    "log.txt"/>
    
    "true"/>
    
    "Size"/>
    
    "10"/>
    
    "100KB"/>
    
    "true"/>
    "log4net.Layout.PatternLayout">
        "%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
    

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

"RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        
    "logfile" />
    
    "true" />
    
    "Date" />
    
    "yyyyMMdd-HHmm" />
    "log4net.Layout.PatternLayout">
        "%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    

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

"RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    
    "logfile" />
    
    "true" />
    
    "Composite" />
    
    "yyyyMMdd" />
    
    "10" />
    
    "1MB" />
    "log4net.Layout.PatternLayout">
        "%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    

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

"RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    
    "logfile.txt" />
    
    "false" />
    
    "Size" />
    
    "-1" />
    
    "50GB" />
    "log4net.Layout.PatternLayout">
        "%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    

下面是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呢。 

小结
Log4的应用远不止这些,帮助文件也是很详尽的,在程序级还是配置级都有相关例子。在整理了一个RollingFileAppender就花了我不少工夫。如果有机会接触到其他的内容,我会继续整理出来。

Log4net使用(一)

标签:帮助文档   derby   static   自动删除   app   补充   osi   net   csdn   

原文地址:http://www.cnblogs.com/herizai/p/7109836.html


评论


亲,登录后才可以留言!