我有一个关于log4j2的问题,它没有在项目中加载log4j2.xml
配置文件。
该项目捆绑在一个超级jar文件中。使用java -jar jarfile.jar
运行应用程序时,应用程序启动但log4j将以下错误输出到控制台:
ERROR StatusLogger找不到log4j2配置文件。使用默认值 配置:仅将错误记录到控制台。
我检查了jar,它肯定在根位置包含一个log4j2.xml
文件。
因为我无法弄清楚为什么这不起作用我调试了log4j2 bootstrap代码。我发现log4j从不尝试读取log4j2.xml。这应该在org.apache.logging.log4j.core.config.ConfigurationFactory.Factory#getConfiguration.
不幸的是,此方法中使用的工厂列表为空,因此该方法始终返回null。
有关于此的任何想法吗?
如果要检查此克隆https://github.com/cryptomator/cryptomator,请cd到克隆仓库中的主目录,然后运行mvn clean install -DskipTests -P uber-jar
,您将在main / uber-jar / target下找到有问题的jar文件。
答案 0 :(得分:2)
我怀疑这是与Log4j2 configuration not found when running standalone application builded by shade plugin相同的问题,因为听起来你正在建造一个超级罐。