首页 > 解决方案 > WebSphere Liberty 在 WAR 的类目录中找不到 log4j.properties

问题描述

如果我将 WEB-INF/classes 之外的文件移动到通过以下方式手动加载的目录中:

<library id="global">
    <folder dir="C:\Temp" />
</library>

那么一切都很好。从我正在阅读的所有内容来看,将属性文件存储在 WAR WEB-INF/classes 目录中应该足够好,但它不起作用。

以下是 WLP 的详细信息:

product = WebSphere Application Server 20.0.0.4 (wlp-1.0.39.cl200420200401-1714)
wlp.install.dir = C:/IBM/WASv9_Liberty/
java.home = C:\Temp\OpenJDK\jdk-10+44_windows-x64_bin_ri.tar\jdk-10+44_windows-x64_bin_ri\jdk-10
java.version = 10
java.runtime = OpenJDK Runtime Environment (10+44)
os = Windows 10 (10.0; amd64) (en_US)
process = 1948@DEV-WIN10-221

有什么想法吗?谢谢。

[编辑]由于不工作,我看到了一些事情:

[err] log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
[err] log4j:WARN Please initialize the log4j system properly.
[err] log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我没有加载任何附加程序,也没有加载日志记录级别。

当我将属性文件从 classes 目录复制到 C:\Temp 目录时,log4j:WARN 消息从日志中消失,并且 appenders/logging 级别再次开始工作。

标签: javapropertieslog4jwebsphere-liberty

解决方案


你有没有机会使用 MAVEN 来构建你的 WAR 文件?

对于 MAVEN 构建,必须将 log4j 属性文件放在src/main/resources文件夹下,除非通过 java 系统属性 -Dlog4j.configurationFile=file:/path/to/log4j2.xml 显式配置


推荐阅读