2016-08-23 3 views
1

Lassen Sie uns sagen, dass ich die unten Linie in log4j.properties habenLog4j Protokollierungsebene in Java

log4j.rootLogger=DEBUG,file 
.. 
.. 

Ist mein Java-Anwendung Capture alle Protokollierungen mit log.debug() allein?

oder

Ist mein Java-Anwendung Capture alle Protokollierungen mit debug, info, warn, und Fehler auch

Was muss ich tun, wenn ich nur INFO und ERROR müssen?

+3

Was sagen die [Log4j Dokumente] (https://logging.apache.org/log4j/1.2/manual.html)? – bradimus

+0

Ich stimme mit Bradimus überein. Warum fragen andere Leute, was gut dokumentiert ist, wahrscheinlich eine Zillion mal? Siehe zum Beispiel: http://stackoverflow.com/questions/5817738/how-to-use-log-levels-in-java – GhostCat

+0

Wenn rootLogger auf DEBUG festgelegt ist, wird DEBUG, INFO, WARN, ERROR gedruckt. Wenn Sie nach INFO und ERROR filtern möchten, müssen Sie nur einen Filter in Ihren Appendern konfigurieren. Siehe http://stackoverflow.com/documentation/java/2472/log4j-log4j2/19786/filter-logoutput-by-level-log4j-1-x#t=201608231427550986515 – Fildor

Antwort

2

Der beste Weg, um wirklich zu verstehen, ist es, selbst zu sehen.

LogLevelDemo.java

public class LogLevelDemo { 

    private static final Logger LOG = Logger.getLogger(LogLevelDemo.class); 

    public void log() { 
     LOG.fatal("This is fatal."); 
     LOG.error("This is error."); 
     LOG.warn("This is warn."); 
     LOG.info("This is info."); 
     LOG.debug("This is debug."); 
     LOG.trace("This is trace."); 
    } 

    public static void main(String[] args) { 
     LogLevelDemo lld = new LogLevelDemo(); 
     lld.log(); 
    } 

} 

log4j.properties

log4j.rootLogger=INFO,A1 
log4j.appender.A1=org.apache.log4j.ConsoleAppender 

log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

Und dann schalten Sie das log4j.rootLogger Level-Attribut auf das Niveau testen Ihr wollen.

diese Einstellungen drucken folgende:

0 [main] FATAL demo.log4j.LogLevelDemo - This is fatal. 
0 [main] ERROR demo.log4j.LogLevelDemo - This is error. 
0 [main] WARN demo.log4j.LogLevelDemo - This is warn. 
0 [main] INFO demo.log4j.LogLevelDemo - This is info. 

daher keine Debug oder Aussagen verfolgen, und so weiter und so fort.