2017-01-11 63 views
0

我想看到從控制檯輸出的所有信息級別,並且只警告從文件輸出。Logback根輸出配置

控制檯上的信息電平輸出清晰顯示,但所有的信息輸出也保存在文件上,不僅警告電平輸出。

這是我的logback配置。這裏有錯嗎?

<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <pattern>%d{HH:mm:ss.SSS} %-5level %logger{20} [%mdc{threadid}] - [%mdc{useroid} : %mdc{sessionid}]%msg%n</pattern> 
    </encoder> 
</appender> 

<appender name="consoleFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <prudent>true</prudent> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>log/console.%d{yyyy-MM-dd}.log</fileNamePattern> 
     <maxHistory>30</maxHistory> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level | %msg%n</pattern> 
    </encoder> 
</appender> 


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

<root level="WARN"> 
    <appender-ref ref="consoleFileAppender" /> 
</root> 
+0

你不能有兩個根級標籤 –

回答

1

爲了您的目的,我建議在您的appender中使用過濾器。更具體地說,如果你想在控制檯上只看到INFO信息,你可以在你的控制檯appender中添加一個特定的LevelFilter,如果你想查看所有等於或大於INFO的日誌,可以使用ThresholdFilter。

這裏有您的任務可能的解決方案:

<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
      <level>INFO</level> 
      <onMatch>ACCEPT</onMatch> 
      <onMismatch>DENY</onMismatch> 
     </filter> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <pattern>%d{HH:mm:ss.SSS} %-5level %logger{20} [%mdc{threadid}] - [%mdc{useroid} : %mdc{sessionid}]%msg%n</pattern> 
    </encoder> 
</appender> 

<appender name="FileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <prudent>true</prudent> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
        <level>WARN</level> 
        <onMatch>ACCEPT</onMatch> 
        <onMismatch>DENY</onMismatch> 
    </filter> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>log/console.%d{yyyy-MM-dd}.log</fileNamePattern> 
     <maxHistory>30</maxHistory> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level | %msg%n</pattern> 
    </encoder> 
</appender> 

<root level="INFO"> 
    <appender-ref ref="console" /> 
    <appender-ref ref="FileAppender" /> 
</root>