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

升级logback至1.5.15版本后应用启动报错,如何解决?

Logback升级至1.5.15后启动失败的修复方案

问题原因

Logback 1.5.9及后续版本移除了ch.qos.logback.core.boolex.JaninoEventEvaluatorBase类,同时重构了Janino相关事件评估器的实现。若项目的logback配置文件仍沿用旧的评估器配置逻辑,就会触发NoClassDefFoundError错误,进而导致Tomcat嵌入式服务器启动失败。

修复步骤

1. 更新Logback配置文件

检查logback.xml或logback-access.xml,将旧的<janinoEventEvaluator>标签替换为标准<eventEvaluator>标签,并指定新的实现类:

  • 旧配置示例:
    <janinoEventEvaluator name="customEvaluator">
      <expression>logger.contains("api") &amp;&amp; level &gt;= INFO</expression>
    </janinoEventEvaluator>
    
  • 新配置示例:
    <eventEvaluator name="customEvaluator" class="ch.qos.logback.core.boolex.JaninoEventEvaluator">
      <expression>logger.contains("api") &amp;&amp; level &gt;= INFO</expression>
    </eventEvaluator>
    

2. 确认Janino依赖完整性

项目若依赖Janino处理表达式评估,需确保依赖已正确引入,且版本与Logback 1.5.15兼容:

  • Maven依赖配置:
    <dependency>
      <groupId>org.codehaus.janino</groupId>
      <artifactId>janino</artifactId>
      <version>3.1.12</version>
    </dependency>
    
  • Gradle依赖配置:
    implementation 'org.codehaus.janino:janino:3.1.12'
    

3. 清理并重建项目

执行项目构建工具的清理命令(Maven:mvn clean,Gradle:./gradlew clean),清除旧依赖缓存后重新构建,确保新的Logback版本及依赖被正确加载。

4. 检查Logback Access Valve配置

若错误由LogbackValve触发,需同步检查logback-access.xml中的所有评估器配置,确保无旧类引用残留。

额外提示

  • 若使用Spring Boot,需保证Spring Boot版本与Logback 1.5.15兼容(推荐Spring Boot 3.2.x及以上版本)
  • 统一logback-classic、logback-core、logback-access(若使用)的版本,避免混合不同版本组件引发冲突

内容的提问来源于stack exchange,提问作者Gustavo Cesário

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:52:34