2010-08-25 15 views

risposta

31

Nei miei log4j.properties il file ho impostato il livello di registrazione logger principale per errore. Quindi per i pacchetti che voglio specificamente registrare, come il mio codice applicazione, ho impostato il livello di registrazione su INFO o DEBUG.

log4j.rootLogger=ERROR, stdout 
log4j.logger.com.initech.tps=DEBUG 
log4j.logger.org.hibernate.SQL=INFO 

vedo collaboratori che impostare la registrazione radice basso e poi finiscono per messa in vendita di tutto ciò che non vogliono vedere, che sembra solo indietro per me. Vorrei piuttosto elencare ciò che voglio registrare di tutte le cose che non voglio registrare.

BTW disattivare completamente la registrazione per un componente di terze parti mi sembra una cattiva idea. Ad esempio, Spring è relativamente rumoroso e utilizza WARN per cose di cui non ho davvero bisogno di sapere, ma se registra una voce di ERRORE per qualcosa voglio vederla.

+1

+1 per i riferimenti a Office Space –

2

Semplicemente non aggiungere questi pacchetti nel file log4j.properties. Ad esempio, devi avere questo per Spring nel tuo file delle proprietà. Toglilo se hai delle voci come sotto (qualsiasi cosa inizi con org.springframework). Lo stesso deve essere fatto per l'ibernazione.

#Logs the SQL from Spring 
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=ERROR 
#Logs the SQL parameters from Spring 
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=ERROR 

Inoltre, come è stato menzionato, si dovrebbe anche impostare quanto segue. Ho dimenticato di dirlo.

log4j.rootLogger=FATAL 
or 
log4j.rootLogger=ERROR 
+2

È il contrario. Generalmente il logger root abilita tutto e devi quindi disattivare quelli che non vuoi. Da qui il = ERRORE in modo che tutti a livelli inferiori non mostrano. –

+0

@ Thorbjørn Ravn Andersen: Si prega di leggere quello che ho detto. Ho detto a OP di portarli fuori se lui ha una di queste voci dal momento che non voleva vedere alcun messaggio da quei pacchetti. – CoolBeans

+0

Mettere le linee simili a quelle in, impedirà la registrazione del messaggio di debug o info per quei pacchetti, anche se per il rootLogger è stato definito il debug/info. –

3

In log4j.properties è possibile definire singoli livelli su una base per logger:

log4j.logger.<name>=FATAL 

Nel log4j.xml la sintassi è

<logger name="<name>"> 
    <level value="fatal"/> 
</logger> 

<nome> è spesso il pieno nome di classe qualificato. È possibile utilizzare WARN o ERROR anziché FATAL

14

È possibile farlo modificando il livello di registrazione nel file log4j.properties/log4j.xml.

È necessario impostare il logger <level value="off"/> se si desidera filtrare i registri dal pacchetto ma mantenere la configurazione del logger per un uso successivo. È anche possibile impostarlo sul livello più alto per accedere solo in caso di errore o di problemi irreversibili.

seguenti voci dovrebbero essere aggiunti alla log4j.xml per disattivare la registrazione da Hibernate e Spring Framework pacchetti:

<logger name="org.springframework"> 
    <level value="off"/> 
</logger> 
<logger name="org.hibernate"> 
    <level value="off"/> 
</logger> 
+0

quindi è possibile impostare il level off per il pacchetto genitore come in questo caso se non voglio che i log di tutti i pacchetti inizino con org.springframework, imposterò il suo livello come off. – YoK

Problemi correlati