如何在Open-liberty项目中正确完成log4j日志配置
Open Liberty Log4j 1.x 配置调整步骤
- 修正server.xml错误配置
你当前配置的log4jConfig公共库指向的是/var/log/intake日志输出目录,不需要加入应用类加载路径。如果你把log4j.xml放在项目resources目录下,会自动打包进WAR包的WEB-INF/classes目录,可以直接删除以下两段配置:
<!-- 可删除 --> <library id="log4jConfig"> <folder dir="/var/log/intake" scanInterval="5s" /> </library> <!-- 可删除 --> <classloader commonLibraryRef="log4jConfig"/>
如果你需要外置log4j.xml(不打进WAR包方便修改),只需要把上述library的dir属性修改为你实际存放log4j.xml的目录路径即可。
- 新增日志特性避免默认实现冲突
在featureManager节点中添加log4j-1.2特性,让Open Liberty优先使用Log4j作为日志实现,避免自带的JUL日志与Log4j产生冲突:
<featureManager> <!-- 原有其他feature保持不变 --> <feature>log4j-1.2</feature> </featureManager>
- 补充校验配置项
- 确认
log4j.xml中配置的日志输出目录/var/log/intake已经创建,并且Open Liberty进程对该目录有读写权限,否则会出现日志写入失败问题 - 如果你的应用中使用了SLF4J日志门面,可额外添加如下依赖完成适配,避免日志找不到实现:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.36</version> </dependency>
- 如果启动后日志输出不符合预期,可在Open Liberty的jvm.options配置文件中添加调试参数,排查配置加载问题:
-Dlog4j.debug=true
内容的提问来源于stack exchange,提问作者BrentL
相关产品推荐
相关产品推荐

