Log4J输出到控制台和文件会产生警告/错误log4j:没有为appender设置WARN文件选项

时间:2013-08-12 21:44:55

标签: java eclipse log4j

我想将Log4J日志记录集成到我的Java应用程序中,将信息写入日志文件以及在控制台上显示信息。不幸的是,我遇到了一些麻烦。我在Win 7上使用Eclipse Juno。

我的log4j.properties文件:

#configure logfile
log4j.appender.logfile = org.apache.log4j.RollingFileAppender
log4j.appedner.logfile.File = MyAppLog.log
log4j.appender.logfile.Append = true
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-5p %d [%t][%F:%L] : %m%n

#configure 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 = %-5p %d [%t][%F:%L] : %m%n

log4j.rootLogger = debug, logfile, stdout

我相信上面是其他一些accepted answers on this topic的模式。

我已经用VM参数指定了这个log4j.properties文件的位置:

-Dlog4j.configuration=file:///${workspace_loc}\path\to\file\log4j.properties

我在我的java类中实例化记录器:

static Logger logger = Logger.getLogger(MyApp.class.getName());

记录一个字符串:

logger.info("barfoo");

此配置会在启动时导致以下警告/错误:

log4j:WARN File option not set for appender [logfile].
log4j:WARN Are you using FileAppender instead of ConsoleAppender?
log4j:ERROR No output stream or file set for the appender named [logfile]

它不会生成日志文件。然而,控制台日志记录似乎工作正常。

1 个答案:

答案 0 :(得分:9)

这听起来很愚蠢 - 你有一个错字。您有log4j.appedner.logfile.File而不是log4j.appender.logfile.File(注意'n'和'd'已切换)。这就是为什么它抱怨你没有设置文件。