开发者

how can I disable output to log4j.rootLogger?

开发者 https://www.devze.com 2023-04-07 05:00 出处:网络
I want to disable the output to the console when logging to file. See config-file below: log4j.rootLogger=info,stdout

I want to disable the output to the console when logging to file. See config-file below:

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开发者_StackOverflow.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

when I using:

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

this log print to stdout too,how can I disable it?


You can use `log4j.additivity.FileLog = false, that is the 'flag' you are looking for.

From the official log4j documentation:

The output of a log statement of logger C will go to all the appenders in C and its ancestors. This is the meaning of the term "appender additivity".

However, if an ancestor of logger C, say P, has the additivity flag set to false, then C's output will be directed to all the appenders in C and its ancestors upto and including P but not the appenders in any of the ancestors of P.

Loggers have their additivity flag set to true by default.

Removing "stdout" from your root logger (as proposed in other answers) might not be a solution, because I suppose you are still interested in that console logs in some cases.


remove stdout from here

log4j.rootLogger=info,stdout

To:

log4j.rootLogger=info


I don't know the answer to the exact question the user provided, but facing a similar problem with the following log4j code:

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

I removed all logging lines from the console by changing

log4j.rootCategory=INFO, console

to

log4j.rootCategory=OFF, console


Remove "stdout" from root logger. It will stop writing on the console.

0

精彩评论

暂无评论...
验证码 换一张
取 消