2011-09-22 13 views
9

Desidero disattivare l'output sulla console durante l'accesso al file. Vedere config-file qui sotto:Come disabilitare l'output su 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 

quando utilizza:

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

questa stampa registro per stdout troppo, come posso disattivarlo?

risposta

12

È possibile utilizzare `log4j.additivity.FileLog = false, che è la 'bandiera' che si stanno cercando.

Dal official log4j documentation:

L'uscita di una dichiarazione di log logger C andrà a tutte le appenders in C ei suoi antenati. Questo è il significato del termine "appender additività".

Tuttavia, se un antenato di logger C, dire P, ha il flag additività impostato su false, quindi l'uscita di C sarà rivolta a tutte le appenders in C e suoi antenati fino a compreso P ma non i appenders in uno qualsiasi degli antenati di P.

I logger hanno il loro flag di additività impostato su true per impostazione predefinita.

La rimozione di "stdout" dal tuo root logger (come proposto in altre risposte) potrebbe non essere una soluzione, perché suppongo che tu sia ancora interessato a quei registri della console in alcuni casi.

+0

grazie @Guido Garcia, ho provato 'log4j.additivity.R = false' e' log4j.app ender.R.additivity = false', ma non ha funzionato – Koerr

+0

'log4j.additivity.FileLog = false' può funzionare, grazie ancora :) – Koerr

-1

Rimuovere "stdout" dal logger principale. Smetterà di scrivere sulla console.

5

rimuovere stdout da qui

log4j.rootLogger=info,stdout 

A:

log4j.rootLogger=info 
0

Non conosco la risposta alla domanda esatta l'utente fornito, ma di fronte a un problema simile con il seguente codice 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 

ho rimosso tutte le linee di registrazione dalla console modificando

log4j.rootCategory=INFO, console 

a

log4j.rootCategory=OFF, console 
Problemi correlati