我想将log4j配置为仅写入最大指定大小的文件,例如5MB。当日志文件达到5MB时,我希望它开始写入新文件。我想在日志文件名中加入一些有意义的时间戳来区分一个文件与下一个文件。
当编写新文件时,我不需要以任何方式重命名或操作旧文件(压缩将是一种福音,但不是必须的。)
我绝对不希望它在一段时间或滚动文件数量后开始删除旧文件。
N MB日志文件的带时间戳的块似乎是我能想象的绝对基本最小简单策略。它是如此基本,我几乎拒绝相信它不是开箱即用的,但我无法弄清楚如何做到这一点!
特别是,我尝试过DailyRollingFileAppender
,RollingFileAppender
或'Extras'RollingFileAppender
的所有版本。所有这些都在超过backupcount时删除旧文件。我不想要这个,我想要所有的日志文件!
TimeBasedRollingPolicy
不合适,因为它没有最大文件大小选项,您无法关联辅助SizeBasedTriggeringPolicy
(因为它已经实现了TriggeringPolicy
)。
是否有开箱即用的解决方案 - 最好是一个在maven中心的解决方案?
答案 0 :(得分:0)
我放弃了尝试让它开箱即用。事实证明uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender
正如年轻人显然所说的那样是炸弹。
我试着联系一段时间让作者坚持到maven中心,但到目前为止没有运气。