2013-09-13 4 views
10

У меня есть следующий logback.xml файл:Logback RollingFileAppender Не Рабочая

<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.log(string of numbers).tmp

например

api.log849916939395200.tmp

Кто-нибудь знает, почему это происходит?

+0

Попробуйте проверить следующее. Существует ли папка api под журналами? Имеет ли он необходимые разрешения для написания? У пользователя, под которым выполняется приложение, есть разрешение на запись в папку? Это может быть начало – myqyl4

+0

@ myqyl4 Проблема с разрешениями звучит очень многообещающе. Я чувствую, что это, вероятно, решение, но не будет знать до завтра, когда мои журналы файлов будут свернуты. Если вы опубликуете ответ, я соглашусь с этим, однако. – thatidiotguy

ответ

3

У меня была аналогичная проблема. Чтобы исправить эту проблему, измените шаблон на /usr/share/tomcat6/logs/api/api.%d{yyyy-MM-dd}.%i.gz.

Вы пропустили %i в конце.

+0

Да, в моем случае добавление% i было ключом к успеху! спасибо – Cristiano

7

Просто удалите тег файла из приложения. Используйте что-то вроде этого,

<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 here

+0

, но как насчет сжатия? – Artem

Смежные вопросы