我想将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]
它不会生成日志文件。然而,控制台日志记录似乎工作正常。
答案 0 :(得分:9)
这听起来很愚蠢 - 你有一个错字。您有log4j.appedner.logfile.File
而不是log4j.appender.logfile.File
(注意'n'和'd'已切换)。这就是为什么它抱怨你没有设置文件。