Log4j的使用求教

目前小弟有这样的需求,不知道能否通过Log4j配置实现:
1、每天固定生成日志,假定日志文件名称为:testA.log;
2、次日凌晨,生成新的日志testA.log,原日志名改为testB.log;

注:testA.log/testB.log只是举例,仅要求生成的日志文件名固定。
简单理解就是,日志只分为两类,一类是当天生成的日志,一类是历史生成的日志,分别有固定的文件名;
因为有另一程序定时处理历史日志,且处理完成之后,会将历史日志文件重命名,所以暂不考虑历史日志覆盖的问题。

时间 文件列表演进 【事件说明】

2012年12月12日 testA.log 【生成testA.log 】

2012年12月13日 testA.log,testB.log 【将testA.log 重命名为testB.log,新生成testA.log】

2012年12月13日 testA.log,testB.log.20121213 【下午定时程序启动,处理testB.log,并重名为testB.log.20121213】

2012年12月14日 testA.log,testB.log,testB.log.20121213 【如此往复。】

 

2个回答

可以。log4j 你可以通过 配置文件去配置 每天生成一个日志文件,或者 当日志文件大于一定文件大小 后 从新生成

dashabenmao
dashabenmao 稍后我会把 以前配置的发给你
7 年多之前 回复
dashabenmao
dashabenmao 我印象中是 test-2012-03-03.log 会有时间格式。
7 年多之前 回复
VanVesee
祁之所予白之所付 比如:log4j.appender.DLOGFILE.File=test.log log4j.appender.DLOGFILE.DatePattern='.ready' 按照这样配置后,历史的日志名即为“test.log.ready”? 这样理解正确否?
7 年多之前 回复
dashabenmao
dashabenmao 可以 ,可以 根据时间 等 自定义
7 年多之前 回复
VanVesee
祁之所予白之所付 谢谢你的回答。 每天生成一个日志文件,这个日志文件的命名规则是否可以自定义?
7 年多之前 回复

#应用于按日期生成文件
log4j.appender.DLOGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DLOGFILE.File=d:\test.log
log4j.appender.DLOGFILE.Threshold=INFO
log4j.appender.DLOGFILE.DatePattern='.'yyyy-MM-dd
log4j.appender.DLOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.DLOGFILE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

看看我这,能给你点启发
http://jslfl.iteye.com/blog/1172800

VanVesee
祁之所予白之所付 谢谢你的回复。类似的文章也看过几次,不过你的比较详尽,收藏先。但我并非想对历史日志直接添加时间后缀,而是想添加一个固定的后缀。能够通过Log4j配置来满足?
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!