Log4j记录到多个文件

时间:2011-12-08 16:30:43

标签: java logging log4j

在我的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外还会写入控制台。 我只是想让它写入日志文件而不是控制台。 我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

您需要将“add”设置为“false”(请参阅​​log4j手册的Appenders and Layouts部分中有关记录器可加性的更多信息):

log4j.additivity.FailedToAddUsersLogging=false
log4j.logger.FailedToAddUsersLogging = your level, L1

另外,请确保您有一个新版本的log4j,“additivity”设置从一开始就无法使用。