论坛首页 Java企业应用论坛

log4j定时轮换文件

浏览 11043 次
精华帖 (0) :: 良好帖 (13) :: 新手帖 (8) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-19  
看了标题我就知道是你 哈哈 其实你把自己的名字都留在程序上了 哈哈
0 请登录后投票
   发表时间:2011-04-19  
Foxswily 写道
不知道有没有考虑用slf4j+logback,log4j的作者已经转到把精力完全放倒这上边了,据说性能有提升。

另外log4j是异步输出,服务停止的瞬间不保证能输出所有的log,如果是精确度高的业务也许不合适

http://www.iteye.com/topic/900845

log4j内置的三种 输出方式

flush=true 直接输出到文件,同步不缓存
bufferedIO 按一定字节大小缓存,同步缓存
AsynFileAppender  按一定的条数缓存,异步输出
0 请登录后投票
   发表时间:2011-04-19  
项目中也用过这个!
顶一个了
0 请登录后投票
   发表时间:2011-04-19  
最近总是迷惑日志记录方式,今天学习啦,感谢LZ...
0 请登录后投票
   发表时间:2011-04-19  
貌似这段代码,运行的时候 maxBackupIndex 设置没有作用了... 楼主能说明下么?
0 请登录后投票
   发表时间:2011-04-19  
leeaee 写道
貌似这段代码,运行的时候 maxBackupIndex 设置没有作用了... 楼主能说明下么?

被我注释掉了。~
0 请登录后投票
   发表时间:2011-04-20  
貌似有个小小的BUG:

构造函数TimeRollingFileAppender()里面,第一次运行的时候的 rollTime 始终是定义的值 60,以后才会读去配置的值...
setRollTime() 在构造函数后运行造成的?

如果这里修改了,就完美了。
0 请登录后投票
   发表时间:2011-04-20  
leeaee 写道
貌似有个小小的BUG:

构造函数TimeRollingFileAppender()里面,第一次运行的时候的 rollTime 始终是定义的值 60,以后才会读去配置的值...
setRollTime() 在构造函数后运行造成的?

如果这里修改了,就完美了。

log4j的配置文件加载机制是,
调用构造函数,
然后读取xml中的key-value,set到appender的property中去。

构造函数里的那个只是检查的时间,不是rollover的时间。

另外,注释掉的那一段timer的代码,就是解决你说的这个问题的,
根据set的rollTime,重设检查时间,后来发现没必要。
0 请登录后投票
   发表时间:2011-04-20  
kimmking 写道
leeaee 写道
貌似有个小小的BUG:

构造函数TimeRollingFileAppender()里面,第一次运行的时候的 rollTime 始终是定义的值 60,以后才会读去配置的值...
setRollTime() 在构造函数后运行造成的?

如果这里修改了,就完美了。

log4j的配置文件加载机制是,
调用构造函数,
然后读取xml中的key-value,set到appender的property中去。

构造函数里的那个只是检查的时间,不是rollover的时间。

另外,注释掉的那一段timer的代码,就是解决你说的这个问题的,
根据set的rollTime,重设检查时间,后来发现没必要。


嗯,谢谢~了解的,本来我想的是可以重载下activateOptions这个方法...
0 请登录后投票
   发表时间:2011-04-26  
多进程同时写一个log文件的时候,貌似roller文件的就会出现问题,有没有更好的解决方案呢?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics