Log4j记录到多个文件 [英] Log4j Logging to multiple files

查看:159
本文介绍了Log4j记录到多个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的Java控制台应用程序中,我想将某些事件记录到日志文件中,而某些其他事件则记录到控制台。这就是我现在所拥有的

In my Java console app, I want to log certain events to a log file and certain others to console. This is what I've got now

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应用程序中,我使用

In my Java app, I instantiate two log instances using

private static Logger log = Logger.getLogger(ActiveDirectoryManage.class);
private static Logger failedToAddUsersLogger = Logger.getLogger("FailedToAddUsersLogging");

我的问题是 failedToAddUsersLogger.warn(xyz) failedtoaddusers.log 之外,c $ c>还写入控制台。
我只想让它写入日志文件而不是控制台。
如何实现这一目标?

My issue is that failedToAddUsersLogger.warn("xyz") also writes to the console in addition to the log file failedtoaddusers.log. I just want it to write to the log file and not to the console. How do I accomplish that?

推荐答案

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

You need to set additivity to "false" (read more on logger additivity in the Appenders and Layouts section of the log4j manual):

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

此外,请确保您有一个新版本的log4j,additivity设置从一开始就不可用。

Also, make sure you have one of new versions of log4j, "additivity" setting was not available from beginning.

这篇关于Log4j记录到多个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆