2015-06-01 9 views
12

Ich habe ein Problem mit der Konfiguration beim Logback in einer Spring Boot-Anwendung. Ich möchte, dass mein consoleAppender wie der Standard-Spring-Boot-Konsolenappender aussieht. Wie erben Muster von Spring Boot Standardkonsole Appender?Spring Boot Protokollierungsmuster

Unten ist mein consoleAppender Konfiguration

<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

Vielleicht sollten Sie Ausgabe folgen https://github.com/spring-projects/spring-boot/issues/1788 - dies kann Ihnen eine Lösung geben, wenn Sie geschlossen sind. –

Antwort

14

Sobald Sie den Standard enthalten sind, Konfiguration können Sie ihre Werte in Ihrem eigenen logback-spring.xml Konfiguration verwenden:

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

es einige Zeit her, seit diese Frage gestellt wurde, aber da ich das Problem selbst vor kurzem hatte und keine Antwort begann ich ein wenig tiefer graben und finden konnten, fand eine Lösung, die für mich funktionierte.

Ich endete mit dem Debugger und werfen Sie einen Blick auf die Standard-Appender am Logger angeschlossen.

fand ich dieses Muster für mich zu arbeiten, wie gewünscht:

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

EDIT: Das Muster nicht ganz korrekt ist, sah ich, dass die Laufzeit hatte einige Werte bereits (in diesem Fall instanziiert worden 18737 ---) Ich werde in die richtige Variable schauen, um dort zu ersetzen. Es enthält das Format für Spalten mit fester Länge aber

EDIT 2: Ok, ich habe einen anderen Blick auf den Debugger Inhalt. Dies können Sie tun, um sich auch auf den Inhalt einer Logger-Instanz suchen: Debugger(eclipse) Logger Contents

So landete ich das Muster in der ConsoleAppender verwendet mit bis:

%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 

Wie hier zu sehen:

Debugger: detailed contents of the encoder pattern

+0

Danke, in anderer Antwort habe ich die volle logback.xml mit diesem Muster hinzugefügt. Es erfordert, dass die convertRules-Elemente von spring default.xml funktionieren. –

18

Sie finden Frühlings-Boot logback Konsolenprotokollierung Muster in defaults.xml Datei:

Feder-boot-1.5.0.RELEASE.jar/org/spring/boot/logging/logback/defaults.xml

Console Muster:

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