Java log4j日志未写入文件时出现问题

Java log4j日志未写入文件时出现问题,java,jakarta-ee,logging,log4j,Java,Jakarta Ee,Logging,Log4j,是否有人看到此日志未写入文件的原因。它两次写入标准输出,但未写入文件: 此外,我还尝试删除“Stdout”appender,但根本没有任何日志记录 package org.berlin.wicket; import org.apache.log4j.Logger; private static final Logger LOG = Logger.getLogger(QuickstartPage.class); LOG.info("Loading constructor"); log4j.roo

是否有人看到此日志未写入文件的原因。它两次写入标准输出,但未写入文件:

此外,我还尝试删除“Stdout”appender,但根本没有任何日志记录

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

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

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

log4j.appender.mainpender=org.apache.log4j.DailyRollingFileAppender

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

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

log4j.appender.mainpappender.append=true

log4j.appender.mainpappender.layout=org.apache.log4j.patternalyout

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

log4j.logger.org.berlin=DEBUG,Stdout,mainapper


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

FileHandler fileHandler = new FileHandler("myfile.log", true);        
logger.addHandler(fileHandler);

文件
附加
属性区分大小写

log4j.appender.mainpappender.File=someFileName.log

log4j.appender.mainpappender.Append=true

您有两个使用相同appender(Stdout)的记录器,因此您可以在控制台上看到两个条目


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

是否应该?或者可以?我以前从未为log4j做过这件事。这意味着我必须在我所有的代码中再添加几行日志。你看到我的log4j.properties文件有问题吗我没有看到你的log4j.properties文件有问题。您的日志文件是创建的吗?我想它实际上是我使用的“文件”路径。我没有遵循第一部分。哪两个记录器指向同一个附加器?RootLogger和logger.org.berlin?/log4j.logger.org.berlin=DEBUG、Stdout、mainpappender?是的——rootLogger和org.berlin都使用Stdout作为appender。我怀疑这就是为什么你会看到两个控制台写入的原因。很酷,我修改了,它正在工作。我还将文件路径更改为完整文件路径。