【问题标题】:Log4j2 creating new file with distinct filename each time the JVM starts每次JVM启动时,Log4j2都会创建具有不同文件名的新文件
【发布时间】:2018-11-02 16:56:55
【问题描述】:

每次启动 JVM 时,我都需要创建一个新的日志文件。

    <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <RollingFile name="roll-by-time" fileName="target/log4j2/roll-by-time/app.log"
            filePattern="target/log4j2/roll-by-time/app.%d{MM-dd-yyyy-HH-mm}.log"
            ignoreExceptions="false"
            append="false">
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss} %p %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy />
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="Console" />
            <AppenderRef ref="roll-by-time" />
        </Root>

    </Loggers>
</Configuration>

我已经尝试过这个配置,但它所做的只是每次都重写文件,但我需要根据日期和/或时间创建一个具有不同文件名的新文件。 尝试在fileName 参数中插入%d{MM-dd-yyyy-HH-mm},但没有成功。

【问题讨论】:

    标签: java logging log4j2 rollingfileappender


    【解决方案1】:

    从 appender 配置中删除 append="false" 或设置为 true -

    <RollingFile name="roll-by-time" fileName="target/log4j2/roll-by-time/app.log"
                filePattern="target/log4j2/roll-by-time/app.%d{MM-dd-yyyy-HH-mm}.log"
                ignoreExceptions="false"
                append="true">
    

    【讨论】:

    • 谢谢,它成功了。在其他地方阅读,append 对于这种结果应该是错误的。
    【解决方案2】:

    尝试指定 ${runid}.log 的文件名。其中runid = $${date:YYYY-MM-dd HH-mm-ss}

    <Properties>
            <Property name="runid">$${date:YYYY-MM-dd HH-mm-ss}</Property>
        </Properties>
        <Appenders>
             <File name="MyFile" fileName="logs\${runid}.log"   immediateFlush="false" append="true">
                <PatternLayout pattern="%d{dd-MM-yyy HH:mm:ss.SSS} %-5level  - %msg%n"/>
            </File>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      相关资源
      最近更新 更多