3

有谁知道为什么这个日志没有写入文件。它写入标准输出两次,但不写入文件:

另外,我尝试删除“Stdout”附加程序,然后我根本没有得到任何日志记录。

package org.berlin.wicket;
import org.apache.log4j.Logger;
private static final Logger LOG = Logger.getLogger(QuickstartPage.class);
LOG.info("Loading constructor");

log4j.rootLogger=调试,标准输出,mainAppender

log4j.appender.Stdout=org.apache.log4j.ConsoleAppender log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n

log4j.appender.mainAppender=org.apache.log4j.DailyRollingFileAppender

log4j.appender.mainAppender.file=logs/core.log

log4j.appender.mainAppender.datePattern='.'yyyy-MM-dd

log4j.appender.mainAppender.append=true

log4j.appender.mainAppender.layout=org.apache.log4j.PatternLayout

log4j.appender.mainAppender.layout.ConversionPattern=[%d{MM/dd/yyyy HH:mm:ss.SSS}] [%C{1}.%M():%L] [%t] [%p ] - %m%n

log4j.logger.org.berlin=调试,标准输出,mainAppender

4

3 回答 3

3

您有两个使用相同附加程序(Stdout)的记录器,因此您会在控制台上看到两次条目。

正如其他人所提到的,这些属性区分大小写,因此您的文件附加程序配置不正确。

于 2012-12-19T14:59:30.893 回答
2

和属性File区分Append大小写。

log4j.appender.mainAppender.File=someFileName.log log4j.appender.mainAppender.Append=true

于 2012-12-19T14:45:06.877 回答
-4

您应该创建一个 FileHandler 实例,将日志写入名为 myfile.log 的文件。

FileHandler fileHandler = new FileHandler("myfile.log", true);        
logger.addHandler(fileHandler);
于 2012-12-19T14:24:54.670 回答