2015-09-21 94 views
0

我知道這種類型的問題已經得到解答,但在我的情況下,我嘗試了每個配置,但仍然無法正常工作。我需要一個新的視圖到我的配置(我相信我失去了一些東西)。這兩個appender記錄所有級別Logback:針對不同日誌級別的不同文件

我想記錄信息> =所有包到控制檯,並且錯誤只有錯誤記錄文件。在我的情況下,他們兩個日誌信息

這裏是配置。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<!-- CONSOLE --> 
<property name="LOG_PATTERN" value="%d [%thread] %-5level %logger{36} - %msg%n" /> 
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <charset>UTF-8</charset> 
     <pattern>${LOG_PATTERN}</pattern> 
    </encoder> 
</appender> 

<!-- FILE FOR ERROR ONLY --> 

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
<file>/Users/dev/Desktop/JAC/logs/frontend/errors.log</file> 
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 

    <fileNamePattern>/Users/dev/Desktop/JAC/logs/frontend/errors_%d{yyyy-MM-dd}.%i.log</fileNamePattern> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>ERROR</level> 
     <onMatch>ACCEPT</onMatch> 
     <onMismatch>DENY</onMismatch> 
    </filter> 
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
     <maxFileSize>5MB</maxFileSize> 
    </timeBasedFileNamingAndTriggeringPolicy> 
    <maxHistory>30</maxHistory> 
</rollingPolicy> 
<encoder> 
    <charset>UTF-8</charset> 
    <pattern>${LOG_PATTERN}</pattern> 
</encoder> 
</appender> 


<root level="INFO"> 
    <appender-ref ref="CONSOLE" /> 
</root> 

<root level="INFO"> 
    <appender-ref ref="FILE" /> 
</root> 

</configuration> 

在此先感謝

+0

您有2個根級別= INFO,這是正常嗎? – vincent

+0

我在SO的某個地方找到了。也許不是。 –

+0

它肯定不會,放置在INFO一個根級別,而第二個在ERROR – vincent

回答

1

可能,這不是更漂亮的解決方案。但是,在這種情況下,日誌級別INFO記錄在控制檯中,並且錯誤記錄在文件中。調試級別將不會打印。 INFO和ERROR只在一個出口。 而我的應用程序包是fr.myuser。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <property name="DEV_HOME" value="/home/myUser" /> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>INFO</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
     <layout class="ch.qos.logback.classic.PatternLayout"> 
      <Pattern> 
       %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n 
      </Pattern> 
     </layout> 
    </appender> 

    <appender name="FILE-ERROR" 
     class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>ERROR</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
     <file>${DEV_HOME}/error.log</file> 
     <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
      <Pattern> 
       %d{yyyy-MM-dd HH:mm:ss} - %msg%n 
      </Pattern> 
     </encoder> 

     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- rollover daily --> 
      <fileNamePattern>${DEV_HOME}/error.%d{yyyy-MM-dd}.%i.log 
         </fileNamePattern> 
      <timeBasedFileNamingAndTriggeringPolicy 
       class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <maxFileSize>10MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
     </rollingPolicy> 

    </appender> 

    <!-- Send logs to console --> 
    <logger name="fr.myuser" level="INFO"> 
     <appender-ref ref="STDOUT" /> 
    </logger> 

    <root level="ERROR"> 
     <appender-ref ref="FILE-ERROR" /> 
    </root> 

</configuration> 
+0

感謝它的工作 –

相關問題