2009-07-07 30 views
9

Estoy usando log4j en una aplicación que estoy desarrollando para eventualmente ejecutar dentro de Tomcat/JBoss, pero ahora mismo lo estoy ejecutando desde dentro de Eclipse. Lo configuré para escribir en ConsoleAppender usando un archivo log4j.xml y lo pasé como una propiedad del sistema, y ​​todo mi resultado de registro funciona.Eliminando configuración de log4j innecesaria salida

El problema es que log4j escupe un montón de basura bootstrap/startup que realmente no necesito (o quiero) ver. Por ejemplo:

log4j: Retreiving an instance of org.apache.log4j.Logger. 
log4j: Setting [CoherenceMonitor] additivity to [false]. 
log4j: Level value for CoherenceMonitor is [DEBUG]. 
log4j: Desired Level sub-class: [org.apache.log4j.Level] 
log4j: CoherenceMonitor level set to DEBUG 
log4j: Class name: [org.apache.log4j.ConsoleAppender] 
log4j: Setting property [target] to [System.out]. 
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout" 
log4j: Setting property [conversionPattern] to [%-5p %m%n]. 
log4j: Adding appender named [console] to category [CoherenceMonitor]. 

Tengo alrededor de 20 líneas de este cada vez que ejecute mi programa, y ​​es sólo ruido que oscurece los datos de registro que realmente me importa. Lo que quiero hacer es suprimir esta salida (todo lo que comienza con "log4j:") y solo incluir la salida de mis propias instrucciones de registro.

He intentado todo lo que pude encontrar a través de Google y mis compañeros de trabajo, incluido el establecimiento de un valor de prioridad para la categoría org.apache como se muestra a continuación. (Independientemente de la prioridad puse, sigo teniendo la salida.)

<category name="org.apache"> 
    <priority value="FATAL"/> 
</category> 

soy bastante novato en la configuración de log4j, y el mío es bastante simple. Solo tengo un appender, un logger y esta categoría. Cualquier ayuda para lograr que log4j simplemente mantenga la boca cerrada mientras se hace la configuración sería muy apreciada. :-)

Respuesta

14

Esto se parece a la depuración del propio registrador. Si está utilizando la configuración XML, se ve así:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 

Convierta la depuración en falsa.

+0

Um ... wow. Pensé que había revisado todo, no sé cómo me lo perdí. Eso es exactamente lo que era. Sin embargo, me siento algo mejor al saber que algunos compañeros de trabajo revisaron mi archivo log4j.xml y tampoco lo vieron. ¡Gracias! –

+0

Acababa de pasar medio día luchando contra la tala, de lo contrario nunca hubiera sabido :) – javamonkey79

3

Además de comprobar si su log4j.xml tiene el atributo debug="true", también asegurarse de que usted no tiene el conjunto de parámetros log4j.debug sistema (en Eclipse esto aparecería en la configuración Ejecutar como JVM discusión con el valor de -Dlog4j.debug).

+0

También una excelente sugerencia. Aunque mi problema estaba en log4j.xml, es muy útil saber dónde buscar si el problema solo se produce en Eclipse. ¡Gracias! –

Cuestiones relacionadas