logback не генерирует новый файл журнала - PullRequest
3 голосов
/ 14 февраля 2020

Я использую ниже logback. xml в моем проекте Micronaut, он не генерирует новый файл журнала в соответствии с RollingPolicy, предоставленным в конфигурации xml. Я попытался с SizeAndTimeBasedRollingPolicy и TimeBasedRollingPolicy, но это не сработало.

Версия Micronaut: 1.2.2

logback-classi c: 1.2.3

Файл: logback . xml

<configuration>

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/my-app.log</file>
        <encoder>
            <pattern>%cyan(%d{yyyy-MM-dd HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}):%line- %msg%n</pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.RollingFileAppender">
            <fileNamePattern>
                logs/my-app.log-%d{yyyy-MM-dd}-%i.log.gz
            </fileNamePattern>
            <maxHistory>30</maxHistory>
            <totalSizeCap>1MB</totalSizeCap>
        </rollingPolicy>

    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%cyan(%d{yyyy-MM-dd HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}):%line- %msg%n</pattern>
        </encoder>
    </appender>

    <root level="ALL">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
    </root>


</configuration>

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Исходя из моего собственного опыта с logback, вы должны сделать что-то вроде:

<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
...
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>logs/my-app.log-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
    </rollingPolicy>
    <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <MaxFileSize>1MB</MaxFileSize>
    </triggeringPolicy>
...
</appender>

В настоящее время вы используете " RollingFileAppender " для политики, поэтому она не может работать.

0 голосов
/ 14 февраля 2020

Если я не ошибаюсь, ваша политика maxHistory не позволяет вам создавать более одного файла. Вместо этого он удаляет старый и просто создает новый для нового дня или когда достигается размер 1 МБ.

maxHistory в этом случае необходимо объединить с TimeBasedRollingPolicy, как вы указали, а maxHistory - это параметр для дней. Без TimeBasedRollingPolicy это может быть просто количество файлов.

...