2014-04-07 47 views
0

我有兩個appender。一個連接到控制檯,另一個連接到日誌文件。但這並不重要。我遇到的問題是我希望一切都以INFO級別進入文件。但是控制檯不同。有一堆記錄器我不想在WARN或INFO級觸摸控制檯,因爲它們噴出的信息比用戶需要的要多得多。日誌記錄器在不同的閾值由記錄器的多個Appen

因此,可以說,我有三個記錄器A,B,C,A,B和C都應該去在INFO級別的文件追加程序。 A應該去INFO的控制檯,B應該去WARN的控制檯和C應該去控制檯的錯誤。 log4j的配置是做什麼的?

回答

0

像這樣的東西應該工作:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="warn" name="MyApp" packages=""> 
<Appenders> 
    <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz" 
       ignoreExceptions="false"> 
     <PatternLayout> 
      <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> 
     </PatternLayout> 
     <TimeBasedTriggeringPolicy /> 
    </RollingFile> 
    <Console name="STDOUT" target="SYSTEM_OUT" ignoreExceptions="false"> 
     <PatternLayout pattern="%m%n"/> 
    </Console> 
</Appenders> 
<Loggers> 
    <Logger name="A" level="trace" additivity="false"> 
     <AppenderRef ref="STDOUT" level="info" /> 
     <AppenderRef ref="RollingFile" level="info"/> 
    </Logger> 
    <Logger name="B" level="trace" additivity="false"> 
     <AppenderRef ref="STDOUT" level="warn" /> 
     <AppenderRef ref="RollingFile" level="info"/> 
    </Logger> 
    <Logger name="C" level="trace" additivity="false"> 
     <AppenderRef ref="STDOUT" level="error" /> 
     <AppenderRef ref="RollingFile" level="info"/> 
    </Logger> 
    <Root level="trace"> 
     <AppenderRef ref="STDOUT" level="trace" /> 
     <AppenderRef ref="RollingFile" level="trace"/> 
    </Root> 
</Loggers> 

+0

假設你使用log4j2 – Steve

相關問題