2013-02-28 49 views
20

我在單獨的項目中有2 logback.xml文件。一個使用FileAppender將JDBC SQL記錄到文件,另一個使用ConsoleAppender將錯誤記錄到stdout。logback.xml中的文件和stdout appenders

這裏是我的每個logback.xml文件。

文件記錄

<configuration> 
    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
     <file>${user.home}/database.log</file> 
     <append>false</append> 
     <encoder> 
      <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="jdbc" level="OFF" /> 
    <logger name="jdbc.sqlonly" level="debug" /> 

    <root level="info"> 
     <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

控制檯登錄

<configuration> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="jdbc" level="OFF" /> 

    <root level="ERROR"> 
     <appender-ref ref="STDOUT" /> 
    </root> 
</configuration> 

我合併這兩個項目,我希望能夠繼續記錄的信息級別SQL的文件和錯誤到STDOUT。

我已經添加了兩個appender到logback.xml,但我不知道如何處理記錄器和我的新logback.xml中的根標記。

回答

23

試試這個:

<configuration> 
     <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
      <file>${user.home}/database.log</file> 
      <append>false</append> 
      <encoder> 
       <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern> 
      </encoder> 
     </appender> 

     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
      <encoder> 
       <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern> 
      </encoder> 
     </appender> 


     <logger name="jdbc" level="OFF" /> 
     <logger name="jdbc.sqlonly" level="INFO" additivity="false"> 
      <appender-ref ref="FILE" /> 
     </logger> 

     <root level="ERROR"> 
      <appender-ref ref="STDOUT" /> 
     </root> 
    </configuration> 
9

如果你想查看輸出文件控制檯採用兩個附加目的地,裁判這樣的:

<configuration> 
    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
     <file>${user.home}/database.log</file> 
     <append>false</append> 
     <encoder> 
      <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
    </appender> 


    <logger name="jdbc" level="OFF" /> 
    <logger name="jdbc.sqlonly" level="INFO" additivity="false"> 
     <appender-ref ref="FILE" /> 
    </logger> 

    <root level="ERROR"> 
     <appender-ref ref="STDOUT" /> <!-- Every log will apear on screen log --> 
     <appender-ref ref="FILE" /> <!-- Every log will apear on file --> 
    </root> 
</configuration>