【问题标题】:How to change my log4j2.xml RollingFile settings如何更改我的 log4j2.xml RollingFile 设置
【发布时间】:2019-02-01 01:26:34
【问题描述】:

我正在尝试修改我的log4j2.xml 文件并进行一些修改,但未能成功。这是我当前的版本:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%msg%n" />
        </Console>
        <RollingFile name="RollingFile" fileName="logs/mylog.log"  filePattern="logs/mylog-%d{MM-dd-yyyy}-%i.log" append="false">
     <PatternLayout>
           <Pattern>%d{yyyy-MM-dd HH:mm:ss} %p [%t] %m%n</Pattern>
         </PatternLayout>
         <Policies>
          <TimeBasedTriggeringPolicy />
          <SizeBasedTriggeringPolicy size="1 MB"/>
        </Policies>
        <DefaultRolloverStrategy max="2"/>
      </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console" />
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>

我不想每天保存 2 个文件。我一直只需要2个备份文件,否则我的日志会每天增加!我尝试从文件名中删除日期模式,但出现错误:filePattern="logs/mylog-%i.log" 不起作用。

【问题讨论】:

  • 您可以尝试使用RollingFile appender 的delete action 删除旧文件。关于immediateFlush,它是一个布尔参数,所以只需将其设置为false - 你尝试了什么?
  • 好的,谢谢。为什么要生成文件然后删除?!那么文件名中应该有日期吗? filePattern="logs/mylog-%i.log" 有什么问题?!
  • 我建议删除操作,因为它允许您限制文件的总数和/或文件的年龄,因此您可以保持时间触发策略,同时对文件的年龄和/或数量。

标签: java logging log4j log4j2


【解决方案1】:

我终于明白了。

如您所见,我的&lt;Policies&gt; 列表中有一个空的&lt;TimeBasedTriggeringPolicy /&gt; 标记,它强制在filePattern 文件名中检查日期。一旦我删除它,它就开始正常工作了!

【讨论】:

  • 但是如果你想让你的日志文件每天滚动,那么你必须包含 TimeBasedTriggeringPolicy。
猜你喜欢
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 2015-04-05
相关资源
最近更新 更多