在我的Java控制台应用程序中,我想将某些事件记录到日志文件中,而某些其他事件则记录到控制台。这就是我现在所拥有的
log4j.rootLogger=error, 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.appender.L1=org.apache.log4j.FileAppender
log4j.appender.L1.layout=org.apache.log4j.PatternLayout
log4j.appender.L1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} – %m%n
log4j.appender.L1.file=failedtoaddusers.log
在我的Java应用程序中,我使用
实例化两个日志实例private static Logger log = Logger.getLogger(ActiveDirectoryManage.class);
private static Logger failedToAddUsersLogger = Logger.getLogger("FailedToAddUsersLogging");
我的问题是failedToAddUsersLogger.warn("xyz")
除日志文件failedtoaddusers.log
外还会写入控制台。
我只是想让它写入日志文件而不是控制台。
我该如何做到这一点?
答案 0 :(得分:2)
您需要将“add”设置为“false”(请参阅log4j手册的Appenders and Layouts部分中有关记录器可加性的更多信息):
log4j.additivity.FailedToAddUsersLogging=false
log4j.logger.FailedToAddUsersLogging = your level, L1
另外,请确保您有一个新版本的log4j,“additivity”设置从一开始就无法使用。