2

我想将 log4j 配置为只写入最大指定大小的文件,例如 5MB。当日志文件达到 5MB 时,我希望它开始写入新文件。我想在日志文件名中加入某种有意义的时间戳,以区分一个文件和下一个文件。

在编写新文件时,我不需要它以任何方式重命名或操作旧文件(压缩将是一个福音,但不是必须的)。

绝对不希望它在一段时间或滚动文件数量后开始删除旧文件。

N MB 日志文件的时间戳块似乎是我能想象的绝对基本的最小简单策略。它是如此基本,以至于我几乎拒绝相信它不是开箱即用的,但我一直无法弄清楚如何做到这一点!

特别是,我尝试了所有的化身DailyRollingFileAppenderRollingFileAppender或'Extras' RollingFileAppender。当超过备份计数时,所有这些都会删除旧文件。我不想要这个,我想要我所有的日志文件!

TimeBasedRollingPolicyfrom Extras 不适合,因为它没有最大文件大小选项,并且您无法关联辅助文件SizeBasedTriggeringPolicy(因为它已经实现TriggeringPolicy)。

是否有开箱即用的解决方案 - 最好是在 Maven 中心?

4

1 回答 1

0

我放弃了尝试让它开箱即用。事实证明uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender,正如年轻人显然所说的那样,炸弹。

一段时间后,我尝试联系以使作者将其粘贴到 maven Central 中,但到目前为止还没有运气。

于 2015-06-24T17:35:08.783 回答