2015-06-01 5 views
12

मुझे स्प्रिंग बूट एप्लिकेशन में लॉगबैक पर कॉन्फ़िगरेशन के साथ समस्या है। मैं अपने consoleAppender डिफ़ॉल्ट स्प्रिंग बूट कंसोल एपेंडर की तरह दिखने के लिए चाहता हूं। स्प्रिंग बूट डिफ़ॉल्ट कंसोल एपेंडर से पैटर्न कैसे प्राप्त करें?स्प्रिंग बूट लॉगिंग पैटर्न

नीचे मेरी 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

शायद तुम इस मुद्दे को पालन करना चाहिए: विन्यास, आप अपने खुद logback-spring.xml विन्यास में अपने मूल्यों का उपयोग कर सकते https://github.com/spring-projects/spring-boot/issues/1788 - यह बंद होने पर आपको समाधान दे सकता है। –

उत्तर

14

आपके पास डिफ़ॉल्ट को शामिल किया है

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

संपादित करें: पैटर्न पूरी तरह सही नहीं है, मैं (जो रनटाइम कुछ मान पहले से ही instantiated किया गया था देखा था इस मामले में 18,737 ---) मैं वहाँ विकल्प बदलने के लिए उचित चर में देखेंगे। इसमें निश्चित लंबाई कॉलम के लिए प्रारूप होता है हालांकि

संपादित करें 2: ठीक है, मैंने डीबगर सामग्री पर एक और नज़र डाली।

%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(eclipse) Logger Contents

तो मैं consoleAppender में इस्तेमाल किया पद्धति का उपयोग कर समाप्त हो गया: यह आपको यह भी एक लकड़हारा उदाहरण की सामग्री को देखकर स्वयं कर सकते हैं

Debugger: detailed contents of the encoder pattern

+0

धन्यवाद, दूसरे उत्तर में मैंने इस पैटर्न के साथ पूर्ण कामकाजी logback.xml जोड़ा। इसे बदलने के लिए वसंत default.xml से रूपांतरण नियमों की आवश्यकता होती है। –

18

आप defaults.xml फ़ाइल में स्प्रिंग बूट logback सांत्वना प्रवेश पैटर्न पा सकते हैं:

वसंत-बूट-1.5.0.RELEASE.jar/org/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>