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

Wildfly升级到24后栈追踪每行前缀war名称如何解决?

根因说明

你观察到的栈轨迹前缀不是日志格式化配置变更导致的,是Wildfly 11及更高版本内置的JBoss模块系统与日志管理器的默认行为更新:

  • Wildfly 10使用的老版本JBoss LogManager默认不会在栈轨迹中打印类所属的部署单元/模块标识
  • Wildfly 24使用的新版本日志管理器默认开启了该特性,你看到的deployment.app.war//就是当前部署war包对应的模块标识,io.undertow.core@2.2.8.Final//是Wildfly内置依赖模块的标识,目的是方便排查多部署包、多版本类的加载冲突问题

解决方法

提供两种可落地的方案,任选其一即可:

方案1:修改日志打印pattern(无需改启动参数,推荐)

直接修改日志子系统中pattern-formatter的配置,将原有pattern中的%e(异常打印缩写)替换为%e{no-module},修改后完整pattern如下:

<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e{no-module}%n"/>

该配置会明确指定日志管理器打印异常栈时省略模块/部署包前缀,直接恢复为Wildfly10的打印效果。

方案2:添加JVM启动参数全局关闭特性

在Wildfly启动参数中添加如下系统属性:

-Dorg.jboss.logmanager.stackTrace.disableModuleName=true

该配置会全局禁用所有日志输出的栈轨迹模块前缀打印,无需修改现有日志配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:45:08