2017-01-11 14 views
0

コンソールからのすべての情報レベルの出力を見たいと思います。ファイルからの出力のみを警告します。ログバックルート出力の設定

コンソールの情報レベルの出力ははっきりと示されますが、すべてのInfo出力もファイルに保存されます。レベル出力を警告するだけでなく、

これは私のログバック構成です。ここに何か間違っている?

<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

次の2個のルートレベルのタグを持つことができません –

答えて

1

あなたのアペンダーでフィルターを使用することをお勧めします。具体的には、コンソール上のINFOのみを表示したい場合は、コンソールアペンダーに特定の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> 
関連する問題