gpt4 book ai didi

java - log4j linux 问题 - 日志文件为空

转载 作者:太空宇宙 更新时间:2023-11-04 11:09:42 44 4
gpt4 key购买 nike

初始配置文件:

log4j.rootLogger=WARN, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=<%p> %d{dd-MM-yyyy HH:mm:ss} %m%n
log4j.appender.stdout.Threshold=DEBUG

稍后配置为将日志输出到运行时指定的位置:

private static Logger configureLogger(ConflictsCheckerArgs dataModel) {
Logger logger = Logger.getLogger(ApplicationController.class);

FileAppender newAppender = new FileAppender();
newAppender.setFile(new File(dataModel.getOutputPath(), "logs.log").getPath());
newAppender.setName("logsToFile");
newAppender.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
newAppender.setThreshold(Level.INFO);
newAppender.setAppend(true);
newAppender.activateOptions();

Logger.getRootLogger().addAppender(newAppender);

return logger;
}

问题是,这个文件已创建,但它是空的。我假设,在 jar 的/目标位置程序没有写访问权限,也许 log4j 试图在那里做一些事情,这完全阻止了它的工作。您是否知道如何解决此问题 - 如何在该日志文件中记录日志以代替空文件?

值得补充的是,所有其他要放入输出目录的“正常”文件都在那里,而且它们非常好。

最佳答案

尝试激活调试功能以查看 log4j 库在内部做什么...

例子:

java -Dlog4j.debug ...

这将向 System.out 打印有关它用于初始化自身的文件、配置了哪些记录器/附加程序等的有用信息。

关于java - log4j linux 问题 - 日志文件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23760636/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com