2016-06-13 8 views
0

Unten ist meine logback.xml Ich habe Filterklasse hinzugefügt, um verschiedene Protokollstufen einzustellen, aber es scheint nicht zu funktionieren.Wie erstelle ich mit logback.xml 2 verschiedene Loglevel für stdout und file?

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

    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> 
    **<filter class ="ch.qos.logback.classic.filter.ThresholdFilter"><level>WARN</level></filter>** 
     <encoder> 
      <charset>UTF-8</charset> 
      <Pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n</Pattern> 
     </encoder> 
    </appender> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    **<filter class ="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter>** 

     <file>application.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- daily rollover. Make sure the path matches the one in the file element or else 
      the rollover logs are placed in the working directory. --> 
      <fileNamePattern>/srv/logs/application_%d{yyyy-MM-dd}.%i.log</fileNamePattern> 

      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <maxFileSize>5MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
      <!-- keep 30 days' worth of history --> 
      <maxHistory>30</maxHistory> 
     </rollingPolicy> 

     <encoder> 
      <charset>UTF-8</charset> 
      <pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
    </appender> 


</configuration> 

Und das ist mein Java-Code, wo ich Logback-Konfiguration verwenden.

public class APIController { 

    private static final Logger logger = LoggerFactory.getLogger(APIController.class); 

    ... 
    private void handleException(Exception ex, String message) { 
     logger.warn(message); 

     if(logger.isInfoEnabled()){ 
     ex.printstacktrace(); 
     } 
    } 

} 

Aber immer noch sehe ich Stacktrace auf der Konsole. Wie sollte ich 2 verschiedene Log-Ebenen behalten

Antwort