Log4j2基于时间和基于大小的滚动文件附加器

时间:2018-11-07 06:13:21

标签: spring-boot log4j2

我想要log4j2中的策略,即日志文件应同时基于时间和基于大小而滚动。这样,它应该每天滚动一次,并且大小达到最大10KB(用于测试目的)。为此,我尝试了以下示例。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration status="warn">
    <Appenders>
        <RollingFile name="fileLogger" fileName="E:\\Aditya\LOGS\AppLog.log" filePattern="E:\\Aditya\LOGS\AppLog-%d{yyyy-MM-dd-HH-mm-ss}-%i.log">
            <PatternLayout>
                <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <SizeBasedTriggeringPolicy size="10KB" />
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <appender-ref ref="fileLogger" />
        </Root>
    </Loggers>
</Configuration>

上述配置的问题是每秒滚动文件。为了解决这个问题,我更改了

<RollingFile name="fileLogger" fileName="E:\\Aditya\LOGS\AppLog.log" filePattern="E:\\Aditya\LOGS\AppLog-%%d{yyyy-MM-dd-HH-mm-ss}-%%i.log">

TO

<RollingFile name="fileLogger" fileName="E:\\Aditya\LOGS\AppLog.log" filePattern="E:\\Aditya\LOGS\AppLog-%%d{yyyy-MM-dd}-%%i.log">

现在另一个问题是我的总日志文件每天限制为7个文件。我不知道为什么会这样,因为我没有提供这种配置。谁能帮我解决这个问题?预先感谢。

1 个答案:

答案 0 :(得分:0)

我认为问题在于您的模式。只需尝试这些模式。 %d {HH:mm:ss,SSS}或%d {dd MMM yyyy HH:mm:ss,SSS}

检查此: log4j patterns