【问题标题】:Log4j2 saves to an old dated log fileLog4j2 保存到旧的日期日志文件
【发布时间】:2018-03-25 03:34:20
【问题描述】:

我的 log4j2.xml 看起来像

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
    <File name="CatalinaLog" fileName="${sys:catalina.base}/logs/catalina.${date:yyyy-MM-dd}.log" immediateFlush="true" append="true">
        <PatternLayout pattern="[TID=%X{TId}] %d{MMM dd, yyyy HH:mm:ss,SSS} %c %M:%L %p: %m%n"/>
    </File>
</Appenders>
<Loggers>
    <Root level="DEBUG" >
        <AppenderRef ref="CatalinaLog" />
    </Root>
</Loggers>
</Configuration>

在 Tomcat 重新启动之前,将日志添加到以前的日期日志而不是当前日期的日志时,它可以正常工作到第二天。

示例: 昨天是 2018 年 3 月 22 日 今天是 2018 年 3 月 23 日

在 Tomcat 重启之前,日志仍然保存到 catalina.2018-03-22.log 而不是 catalina.2018-03-23.log。

对此有什么想法吗?

【问题讨论】:

  • 您是指避免日志文件变大的默认工作方式?
  • @Stultuske 不 - 我已经用一个例子更新了 OP
  • 您的属性文件中是否缺少DailyRollingFileAppender
  • @notyou 我之前有RollingFile appender,最后遇到了该问题中描述的其他问题:stackoverflow.com/questions/49432150/…

标签: java logging log4j2


【解决方案1】:

您正在使用FileAppender。假设创建一个文件(由fileName 定义)并在其整个生命周期内继续写入该文件。这就是你得到的确切行为。

RollingFileAppender 是您用例的首选解决方案。如果您遇到了这方面的问题,

  • 尝试解决这些问题
  • 尝试使用更新版本
  • 妥协您的要求
  • Log4j2 JIRA 中创建问题

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 2017-09-25
  • 2019-07-04
  • 2021-11-06
相关资源
最近更新 更多