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

如何让WAR包在TomEE 9.1.0中配合Logback正常实现日志功能

TomEE 9.1.0升级后Logback日志异常问题及解决

问题描述

将TomEE从8.0.14升级至9.1.0后,WAR包的Logback日志功能未按预期工作:

  • TomEE全局库目录/opt/tomee/lib包含slf4j-api-1.7.36.jar和slf4j-jdk14-1.7.36.jar
  • WAR包内/opt/tomee/webapps/myDeployment/WEB-INF/classes下的logback.xml已被正常读取,但日志未写入专属文件,而是输出到catalina.out
  • 调试发现当前日志器类型为org.slf4j.impl.JDK14LoggerAdapter,而非预期的ch.qos.logback.classic.Logger
  • WAR包内WEB-INF/lib的日志相关依赖:
    jcl-over-slf4j-1.7.36.jar
    jul-to-slf4j-2.0.7.jar
    liquibase-slf4j-5.0.0.jar
    logback-classic-1.4.11.jar
    logback-core-1.4.11.jar
    

补充问题

将logback-classic-1.2.11.jar和logback-core-1.2.11.jar添加到/opt/tomee/lib后,日志能写入专属文件,但出现SLF4J多绑定警告,且日志同时输出到catalina.out和专属文件,存在重复输出,需要实现WAR包日志与全局JDK14LoggerFactory分离。


解决方案

1. 移除全局SLF4J绑定,优先使用WAR包内置Logback

TomEE全局的slf4j-jdk14-1.7.36.jar是导致绑定优先级高于WAR包内置Logback的核心原因,直接删除该文件:

rm /opt/tomee/lib/slf4j-jdk14-1.7.36.jar

删除后,SLF4J会自动加载WAR包内logback-classic提供的绑定实现,无需将Logback依赖放到全局目录,彻底解决多绑定问题。

2. 修复SLF4J与Logback版本兼容性

Logback 1.4.x要求SLF4J版本为2.0.x及以上,当前WAR包内slf4j-api-1.7.36版本过低,存在兼容问题:

  • 将WAR包内的slf4j-api-1.7.36.jar替换为slf4j-api-2.0.7.jar(与jul-to-slf4j-2.0.7.jar版本保持一致)
  • 保留WAR包内的logback-classic-1.4.11.jar和logback-core-1.4.11.jar,确保版本匹配

3. 消除重复日志输出

如果移除全局绑定后仍存在日志重复输出,可通过以下两种方式处理:

方式一:调整Logback配置阻止JUL日志流入

在logback.xml中添加配置,重置JUL(Java Util Logging)并关闭自动转发:

<configuration debug="true">
    <!-- 原有appender和root配置保持不变 -->
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>
    <turboFilter class="ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter">
        <resetJUL>true</resetJUL>
    </turboFilter>
</configuration>

方式二:调整TomEE全局日志配置

修改/opt/tomee/conf/logging.properties,将全局JUL日志级别设为OFF:

.level = OFF

4. 验证配置效果

重启TomEE后,检查以下内容:

  • 启动日志中无SLF4J多绑定警告
  • 日志仅写入专属文件logs/theDedicatedLogFile.log,不再输出到catalina.out
  • 调试日志器类型为ch.qos.logback.classic.Logger

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:04:55