Почему мой SiftingAppender перестает работать, когда я использовал RollingFileAppender? - PullRequest
2 голосов
/ 14 января 2011

В моем файле конфигурации logback у меня работает следующий appender:

<appender name="thread_SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
    <discriminator class="[...]"/>
    <sift>
        <appender name="FILE-${threadName}" class="ch.qos.logback.core.FileAppender">
            <file>[...]/${bySecond}/${threadName}.log</file>
            <layout class="ch.qos.logback.classic.PatternLayout">
               <pattern>%date %level %logger{0} - %msg%n</pattern>
            </layout>
        </appender>
    </sift>
</appender>

Файл создан правильно.Если я заменю FileAppender на RollingFileAppender, ничего не будет создано.Зачем?Как я могу заставить это работать>

ThreadName устанавливается дискриминатором.

Ответы [ 4 ]

4 голосов
/ 17 января 2011

OnConsoleStatusListener - ваш друг. Просто добавьте

<configuration>
  <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
  .. remainder of your config file
</configuration>

в начале вашего файла конфигурации, чтобы увидеть ошибки, сгенерированные SiftingAppender.

2 голосов
/ 10 февраля 2012

Кажется, свойство ${bySecond} или что-либо еще потеряно внутри тега sift > appender.

ERROR in ch.qos.logback.core.joran.spi.Interpreter@23:97 - no applicable
action for [property], current pattern is [[configuration][appender][property]]
[...]/bySecond_IS_UNDEFINED/main.log
0 голосов
/ 14 января 2011

Произошла ошибка в имени пакета.Кажется, ошибки под тегом sift молча игнорируются.Чтобы проверить, мне нужно скопировать appender вне тега sift, убедиться, что у меня нет ошибок, и скопировать его обратно.

0 голосов
/ 14 января 2011

В дополнение к моему комментарию вы можете проверить, что файл правильно создан с помощью этого приложения в вашем приложении sift (взято из Руководства по возврату по конфигурации RollingFileAppender).

  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>test.log</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>tests.%i.log.zip</fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>3</maxIndex>
    </rollingPolicy>

    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>

    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender>
...