gpt4 book ai didi

java - log4j2 不适用于 JAR

转载 作者:行者123 更新时间:2023-12-01 11:17:49 24 4
gpt4 key购买 nike

我正在尝试将 log4j2 与动态日志目录位置一起使用。我为此编写了代码:

DateFormat dateFormat = new SimpleDateFormat(Constants.DATE_FORMAT);
Date date = new Date();

String currentDir = System.getProperty("user.dir") + "/" + Constants.OUTPUT_FOLDER_NAME + "/" + dateFormat.format(date);
System.setProperty("logDir", currentDir);
final LoggerContext ctx = (LoggerContext)LogManager.getContext(false);
ctx.reconfigure();

log4j2.xml 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace">
<Appenders>
<File name="file" fileName="${sys:logDir}/log.log">
<PatternLayout>
<Pattern>%d{ISO8601} [%t] %C %M - %p: %m%n</Pattern>
</PatternLayout>
</File>

<File name="report" fileName="${sys:logDir}/report.txt">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
</File>

<Console name="console" target="SYSTEM_OUT">
<PatternLayout>
<Pattern>%d{ISO8601} - %p: %m%n</Pattern>
</PatternLayout>
</Console>
</Appenders>

<Loggers>

<Logger name="Report" level="info" additivity="false">
<AppenderRef ref="report" level="INFO"/>
</Logger>

<Root level="info">
<AppenderRef ref="file" level="INFO" />
<AppenderRef ref="console" level="INFO" />
</Root>
</Loggers>
</Configuration>

当我在 Eclipse 中运行该文件时,这些文件生成得很好,但是当我使用类路径上包含已编译主类的 JAR 文件运行程序的主类时,如下所示:

java -cp CLASSPATH -Dlog4j.configuration=file:XMLFILE ClassName args

它仅将“错误”消息打印到控制台。目录结构和文件也不会创建。我做错了什么?

谢谢!

最佳答案

显然记录器无法找到您的配置。它是否在 JAR 中导出(使用存档浏览器查看)?尝试找出它不在应有位置的原因并更新您的程序。

关于java - log4j2 不适用于 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31585283/

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