2015-06-01 3 views
12

У меня возникла проблема с настройкой в ​​Logback в приложении Spring Boot. Я хочу, чтобы мой consoleAppender выглядел как консольное приложение Spring Boot по умолчанию. Как наследовать шаблон из Spring Boot app для консольного приложения?Весенняя регистрация журнала регистрации

Ниже моя consoleAppender конфигурация

<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
     <Pattern class="org."> 
      %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n 
     </Pattern> 
    </layout> 
</appender> 
+0

может быть, вы должны следовать вопрос https://github.com/spring-projects/spring-boot/issues/1788 - это может дать вам решение, когда закрыто. –

+0

проверить эту ссылку https://stackoverflow.com/a/49568780/4369820 –

ответ

14

После того, как вы включили по умолчанию конфигурации, вы можете использовать значение в вашей собственной logback-spring.xml конфигурации:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration scan="true"> 
    <!-- use Spring default values --> 
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/> 

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>${CONSOLE_LOG_PATTERN}</pattern> 
      <charset>utf8</charset> 
     </encoder> 
    </appender> 
    … 
</configuration> 
-4
<configuration> 
    <!-- log to console --> 
    <appender name="STDOUT" 
     class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <!-- pattern --> 
      <pattern> 
       %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 
      </pattern> 
     </encoder> 
    </appender> 

    <!-- error --> 
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>logs/error-today.log</file> 
     <!-- day --> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>logs/error/error-%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
     </rollingPolicy> 
     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
     <!-- error filter --> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>ERROR</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
    </appender> 

    <!-- warn --> 
    <appender name="warnAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>logs/warn-today.log</file> 

     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>logs/warn/warn-%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
     </rollingPolicy> 
     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 

     <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>WARN</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
    </appender> 

    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>logs/info-today.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>logs/info/info-%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
     </rollingPolicy> 
     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>INFO</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
    </appender> 


    <root level="INFO"> 
     <appender-ref ref="STDOUT" /> 
     <appender-ref ref="errorAppender" /> 
     <appender-ref ref="warnAppender" /> 
     <appender-ref ref="infoAppender" /> 
    </root> 
</configuration> 
5

Это было некоторое время, так как этот вопрос был задан вопрос, но так как у меня была проблема сама в последнее время и не смогли найти ответ, я начал копать немного глубже и нашел решение, которое сработало для меня.

Я закончил использование отладчика и посмотрю на прилагаемые к регистратору данные по умолчанию.

Я нашел этот шаблон будет работать, как требуется для меня:

<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p 18737 --- [%t] %-40.40logger{39} : %m%n%wEx</pattern> 

EDIT: Шаблон не совсем правильно, я увидел, что время выполнения некоторых значений уже инстанцированные (в данном случае 18737 ---) Я посмотрю на правильную переменную, чтобы заменить ее. Он содержит формат для столбцов с фиксированной длиной, хотя

EDIT 2: Хорошо, я еще раз посмотрел содержимое отладчика. Это вы можете сделать сами, посмотрев на содержимое экземпляра регистратора: Debugger(eclipse) Logger Contents

Так что я в конечном итоге, используя шаблон, используемый в ConsoleAppender:

%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(18971){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx 

Как можно видеть здесь:

Debugger: detailed contents of the encoder pattern

+0

Спасибо, в другом ответе я добавил полный рабочий журнал.xml с этим шаблоном. Для работы требуется, чтобы элементы conversionRules из spring default.xml работали. –

18

Вы можете найти Spring ботинке Logback шаблон консоли протоколирования в DEFAULTS.XML файле:

весна-загрузки 1.5.0.RELEASE.jar/орг/springframework/загрузки/регистрация/Logback/DEFAULTS.XML

консоли картина:

<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> 
0
<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> 
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> 
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <layout class="ch.qos.logback.classic.PatternLayout"> 
      <Pattern> 
       %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx 
      </Pattern> 
     </layout> 
    </appender> 

    <root level="info"> 
     <appender-ref ref="STDOUT" /> 
    </root> 

</configuration> 
Смежные вопросы