2010-08-25 20 views

Respuesta

31

En mis log4j.properties archivo que he puesto el nivel de registro del registrador de la raíz a error. Luego, para los paquetes que específicamente deseo registrar, como el código de mi aplicación, configuro el nivel de registro en INFO o DEPURAR.

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

veo compañeros de trabajo que establece el registro raíz baja y luego terminan lista de todo lo que no quieren ver, que sólo parece hacia atrás para mí. Preferiría enumerar lo que quiero registrar que todas las cosas que no quiero registrar.

BTW desconectar el inicio de sesión completamente para un componente de terceros me parece una mala idea. Por ejemplo, Spring es relativamente ruidoso y usa WARN para cosas que realmente no necesito saber, pero si registra una entrada de ERROR para algo, quiero verla.

+1

+1 para referencias de espacio de oficina –

2

Simplemente no agregue esos paquetes en su log4j.properties. Por ejemplo, debe tener esto para Spring en su archivo de propiedades. Quítelo si tiene algunas entradas como a continuación (cualquier cosa que comience con org.springframework). Lo mismo debe hacerse para hibernar.

#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 

Además, como se mencionó, también debe configurar lo siguiente. Olvidé mencionar esto.

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

Es al revés. El registrador de raíz usualmente lo habilita todo, y luego necesita desactivar aquellos que no desea. De ahí el = ERROR, por lo que no se muestran todos los niveles inferiores. –

+0

@ Thorbjørn Ravn Andersen: Por favor, lea lo que dije. Le dije a OP que los elimine si tiene alguna de estas entradas, ya que no quería ver ningún mensaje de esos paquetes. – CoolBeans

+0

Al poner líneas similares a aquellas en, impedirá el registro de depuración o mensaje de información para esos paquetes, incluso si se definió depuración/información para el rootLogger. –

3

En log4j.properties puede definir niveles individuales en función de cada registrador:

log4j.logger.<name>=FATAL 

En log4j.xml la sintaxis es

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

<nombre> es a menudo el pleno nombre de clase calificado. Es posible que desee utilizar WARN o ERROR en lugar de FATAL

14

Puede hacerlo cambiando el nivel del registrador en el archivo log4j.properties/log4j.xml.

Debe configurar el registrador <level value="off"/> si desea filtrar los registros del paquete, pero mantener la configuración del registrador para su uso posterior. También puede configurarlo al nivel más alto para que se registre solo en caso de error o problema grave.

siguientes entradas deben añadirse a log4j.xml para desactivar el registro de paquetes de Hibernate y Spring Framework:

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

para que se pueda establecer el nivel de desactivación para el paquete primario, como en este caso, si no quiero registros de todos los paquetes que comiencen con org.springframework, estableceré su nivel como desactivado. – YoK

Cuestiones relacionadas