【问题标题】:Log4j2 not to create new log file after my application restartLog4j2 在我的应用程序重新启动后不创建新的日志文件
【发布时间】:2020-03-14 12:04:33
【问题描述】:

我正在使用 Log4j2。我的日志文件名有这样的时间戳:app.${date:yyyy-M-dd_hh-mm-ss}.log。我已使用 SizeBasedTriggeringPolicy 将最大文件大小设置为 10MB。只要应用程序运行,我们就很好。应用程序重新启动后,即使当前日志文件由于应用程序重新启动而未达到最大大小,也会创建新的日志文件。有什么办法可以在应用重启后使用旧的日志文件而不是创建新的日志文件?

【问题讨论】:

    标签: log4j2


    【解决方案1】:

    名称中没有日期。每次重新创建 Appender 时,Log4j 都会解析名称中的查找。没有办法说“使用尚未超过最大值的最新文件的日期”。

    【讨论】:

    • 感谢 rgoers 的即时回复。是否可以在 fileName 属性中使用 %d 选项。
    • 如果您只指定一个没有文件名的文件模式,并且使用基于时间的触发策略并在模式中包含 %d 和 %i ,那么 Log4J 应该满足您的要求。但是,即使文件没有达到目标大小,文件也会在时间段结束时翻转。
    • 我个人要求在 fileName 属性中允许 %d 选项,以便 Log4j 每次运行都会解析名称。
    • 即使这样做,它的行为也会像 ${date:}
    • 对不起,如果我不清楚。我的意思是 Log4j 框架有任何计划在下一个版本中支持此功能。
    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    相关资源
    最近更新 更多