You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Log4j2.properties在Amazon Linux 2023(Java17)下无日志输出排查

Log4j2 在 Amazon Linux 2023 + Tomcat 11 环境下的日志问题

问题现象

  • Windows 本地环境:通过 log4j2.properties 配置,日志可正常输出到控制台和文件,行号显示正确。
  • Amazon Linux 2023(AL23)服务器环境(搭配 Apache Tomcat 11.0.4、Java 17 Corretto):
    1. 初始阶段控制台和文件均无日志输出;
    2. 后续日志虽能输出,但行号异常显示为 -1。

排查方案

1. 核对 Log4j2 依赖完整性

  • 确认 WAR 包中包含 log4j-core.jar、log4j-api.jar 和 log4j-web.jar(Tomcat 11 需搭配 Log4j2 2.17+ 版本,避免版本兼容冲突)。
  • 检查 Tomcat 服务器的 lib 目录,移除冲突的日志框架包(如 slf4j-log4j12.jar、commons-logging.jar 等),防止日志路由异常。

2. 确认配置文件加载状态

  • 确保 log4j2.properties 放置在 WAR 包的 WEB-INF/classes 目录下,Tomcat 启动时能正确读取。
  • 启动 Tomcat 时添加 JVM 参数 -Dlog4j2.debug=true,查看启动日志中 Log4j2 的加载日志,确认配置文件是否被成功定位并解析。

3. 排查 AL23 环境的权限与 SELinux 限制

  • 日志目录权限检查:确保 Tomcat 运行用户(通常为 tomcat)对日志输出目录有读写权限,执行命令:
    sudo chown -R tomcat:tomcat /path/to/your/log/folder
    sudo chmod -R 755 /path/to/your/log/folder
    
  • SELinux 策略检查:AL23 默认开启 SELinux,可能阻止 Tomcat 写入日志。临时关闭 SELinux 测试(sudo setenforce 0),若日志恢复正常,需添加持久化规则:
    sudo semanage fcontext -a -t tomcat_log_t "/path/to/your/log/folder(/.*)?"
    sudo restorecon -Rv /path/to/your/log/folder
    

4. 修复行号显示 -1 的问题

  • 编译调试信息检查:确认应用编译时未关闭调试信息(未使用 -g:none 参数)。Maven/Gradle 构建时,确保未禁用类文件的调试符号(Maven 默认保留,Gradle 需确认 compileJava 任务未设置 debug = false)。
  • Log4j2 布局配置检查:若使用 PatternLayout,确保模式中包含 %L 标记;若开启异步日志,检查配置中是否设置 includeLocation=false,该参数会关闭行号收集,需改为 includeLocation=true(注意会小幅影响性能)。
  • 打包工具检查:若使用 ProGuard、ShadowJar 等工具打包,需确保未移除类文件的调试信息或混淆行号,调整打包规则保留必要的调试数据。

5. 验证 Tomcat 与 Log4j2 的集成配置

  • 检查 Tomcat 的 conf/logging.properties,避免其覆盖应用的 Log4j2 配置。如需让应用完全接管日志,可在 conf/context.xml 中添加:
    <Resource name="log4j2/Configuration"
              auth="Container"
              type="org.apache.logging.log4j.core.LoggerContext"
              factory="org.apache.logging.log4j.web.Log4jWebContextFactory"/>
    
  • 确认 Tomcat 类加载顺序,保证应用的 Log4j2 依赖优先加载,避免容器自带日志框架干扰。

内容的提问来源于stack exchange,提问作者Gee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:01:18