2011-09-22 12 views
9

Quiero desactivar la salida a la consola al iniciar sesión en el archivo. Ver config-file a continuación:¿cómo puedo desactivar la salida a log4j.rootLogger?

log4j.rootLogger=info,stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L --- %m%n 

log4j.category.FileLog=info,R 
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.R.File=E:\\temp\\FileLog 
log4j.appender.R.Append = true 
log4j.appender.R.DatePattern='.'yyyy-MM-dd'.log' 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%m[%d{MM-dd HH:mm:ss}]%n 

cuando usando:

Logger.getLogger("FileLog").info("LogText-FileLog"); 

este registro de impresión en stdout también, ¿cómo puedo desactivarlo?

Respuesta

12

puede usar `log4j.additivity.FileLog = false, que es la 'bandera' que están buscando.

Desde el official log4j documentation:

La salida de una declaración de registro del registrador C irá a todos los appenders en C y sus antepasados. Este es el significado del término "agregador additivity".

Sin embargo, si un antepasado del registrador de C, por ejemplo P, tiene la bandera aditividad ajustado a falso, entonces la salida del C será dirigido a todos los los appenders en C y sus antepasados ​​upto e incluyendo P, pero no las appenders en cualquiera de los antecesores de P.

Los madereros tienen su marcador de aditividad establecido en verdadero de manera predeterminada.

Eliminar "stdout" de su registrador de raíz (como se propuso en otras respuestas) podría no ser una solución, porque supongo que usted todavía está interesado en los registros de la consola en algunos casos.

+0

gracias @Guido García, que intentó 'log4j.additivity.R = false' y' log4j.app ender.R.additivity = false', pero no funcionó – Koerr

+0

'log4j.additivity.FileLog = false' puede funcionar, gracias de nuevo :) – Koerr

-1

Eliminar "stdout" del registrador de raíz. Dejará de escribir en la consola.

5

quitar la salida estándar de aquí

log4j.rootLogger=info,stdout 

Para:

log4j.rootLogger=info 
0

No sé la respuesta a la pregunta exacta que el usuario siempre, pero frente a un problema similar con el siguiente código de log4j:

log4j.rootCategory=INFO, console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.target=System.err 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n 

He quitado todas las líneas de registro desde la consola cambiando

log4j.rootCategory=INFO, console 

a

log4j.rootCategory=OFF, console 
Cuestiones relacionadas