У меня есть следующие настройки logback
<appender name="TEST-SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator class="..."/>
<sift>
<appender name="ROLL-${fileName}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>../log/${fileName}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>../log/${fileName}%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
</sift>
</appender>
Класс дискриминатора возвращает значение путем анализа loggerName. Ключ определен как «fileName».
Ролловер журналов прекрасно работает, когда я тестирую только RollingFileAppender (после замены ссылок на переменные ${fileName}
на статическое значение), но когда он вложен в SiftingAppender, журналы не переворачиваются. Я протестировал отсеивающее приложение с "FileAppender"
, и оно может создать правильное имя файла на основе дискриминатора.
Я также протестировал ту же конфигурацию, используя дискриминатор, что и
<discriminator>
<key>fileName</key>
<defaultValue>appname</defaultValue>
</discriminator>
и удаление тега class
. Это создает appname.log
, но не переворачивается.
Установка debug="true"
не записывает дополнительную информацию в файл журнала.
Я что-то здесь упускаю? Как мне реализовать RollingFileAppender внутри SiftingAppender?