首页 > 解决方案 > 滚动文件没有在第二天创建,前一天的文件正在用新日志写入

问题描述

我已经实现了 log4j2,每天将我的记录记录在一个新文件中。但是在第二天,前一天的文件正在获取新记录,而旧记录文件正在存档。而不是用今天的日期创建一个新文件。一旦我重新启动服务器,就会创建一个包含今天日期的新文件。

<Appenders>
    <RollingFile name="LogToRollingFile"
        fileName="logs/validategoods/appHeader-${env:hostName}-${date:yyyy-MM-dd}.log"
        filePattern="logs/validategoods/${env:hostName}-${date:yyyy-MM}/appHeader-%d{yyyy-MM-dd}-%i.log.gz">

        <PatternLayout>
            <Pattern>%d %p [%t] %m%n</Pattern>
            <!-- <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> -->
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy  interval="1"/>
            <SizeBasedTriggeringPolicy size="100 MB" />

        </Policies>
    </RollingFile>

    <RollingFile name="LogToRollingFile1"
        fileName="logs/validategoods/appPayload-${env:hostName}-${date:yyyy-MM-dd.HH-mm}.log"
        filePattern="logs/validategoods/${env:hostName}-${date:yyyy-MM}/appPayload-%d{yyyy-MM-dd}-%i.log.gz">
        <PatternLayout>
            <Pattern>%d %p [%t] %m%n</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy  interval="1" />
            <SizeBasedTriggeringPolicy size="100 MB" />

        </Policies>
    </RollingFile>
    <Async name="Async">
        <AppenderRef ref="LogToRollingFile" /> 
    </Async>
    <Async name="Async">
        <AppenderRef ref="LogToRollingFile1" />
    </Async>

</Appenders>

<Loggers>
    <!-- avoid duplicated logs with additivity=false -->
    <Logger name="no.posten.header" level="info" additivity="false">
        <AppenderRef ref="LogToRollingFile" />
    </Logger>
    <Logger name="no.posten.payload" level="info"
        additivity="false">
        <AppenderRef ref="LogToRollingFile1" />
    </Logger>
    <Root level="debug">

    </Root>
</Loggers>

我想在不重新启动服务器的情况下每天创建一个新文件。

标签: javalogginglog4jlog4j2

解决方案


推荐阅读