Logback RollingFileAppender не работает
У меня есть следующий logback.xml
файл:
<configuration>
<!--Daily rolling file appender -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>/usr/share/tomcat6/logs/api.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/usr/share/tomcat6/logs/api/api.%d{yyyy-MM-dd}.gz</FileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
Мой файл журнала работает нормально. Однако аспект файла файла не является. Вместо gzipping файла и перемещения его в папку api, он помещает его в тот же каталог и переименовывает его в
api.log(string of numbers).tmp
например.
api.log849916939395200.tmp
Кто-нибудь знает, почему это происходит?
Ответы
Ответ 1
Просто удалите тег файла из appender. Используйте что-то вроде этого,
<appender name="contentDeliveryLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${ICEX_HOME}/logs/content-delivery.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- keep 1 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d [%thread] %-5level %logger{36} H:${HOSTNAME} - SC:%X{optionalParam} %msg%n</pattern>
</encoder>
</appender>
Это работает для меня, как рекомендовано документацией logback здесь
Ответ 2
У меня была аналогичная проблема. Чтобы исправить эту проблему, измените шаблон на /usr/share/tomcat6/logs/api/api.%d{yyyy-MM-dd}.%i.gz
.
В конце вы пропустили %i
.