SLF4J-Logback: множественный шаблон на основе уровня журнала - PullRequest
0 голосов
/ 30 октября 2018

Logback используется, потому что нам нужны некоторые Appenders, которые не предоставляются log4j.

Требование: Для ошибки уровня журнала мы хотим использовать пользовательский шаблон, который будет добавлять информацию на основе трассировки стека.

Для всех остальных уровней журнала следует использовать простой шаблон.

Весь вывод журнала должен идти в одном файле.

Ниже опробованы следующие вещи: Создано два приложения, одно для уровня журнала ошибок и другое для другого уровня журнала. Когда один и тот же файл назначения используется для обоих приложений, журнал ошибок не записывается в файл. Когда разные файлы назначения используются для обоих приложений, создаются два файла: один с уровнем журнала ошибок, а другой со всем другим уровнем журнала

В log4j2 обнаружены некоторые указатели, но при входе в систему пока невозможно найти решение.

Может кто-нибудь предложить какой-нибудь подход

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Взрыв ответ от Прасант Наир. В руководстве по logback https://logback.qos.ch/manual/appenders.html вы можете найти

В режиме prudent FileAppender будет безопасно записывать в указанный файл, даже в присутствии других экземпляров FileAppender, работающих в разные JVM, потенциально работающие на разных хостах. По умолчанию значение для разумного режима ложно.

Вот пример конфигурации:

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!-- Support multiple-JVM writing to the same log file -->
    <prudent>true</prudent>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
      <maxHistory>30</maxHistory> 
      <totalSizeCap>3GB</totalSizeCap>
    </rollingPolicy>

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

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>
0 голосов
/ 30 октября 2018

В конфигурации appender установите для prudent значение true. Это позволит нескольким получателям писать в один и тот же файл.

...