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

如何在自定义Logback Appender中通过ILoggingEvent获取全部内部异常

Logback自定义Appender获取全量嵌套异常解决方案

实现逻辑

Logback提供的IThrowableProxy接口内置getCause()方法,可获取下一层级的嵌套异常代理对象,循环调用该方法直到返回null即可遍历所有层级的异常。

示例代码

@Override
protected void append(ILoggingEvent event) {
    IThrowableProxy throwable = event.getThrowableProxy();
    // 从最外层异常开始逐层遍历
    while (throwable != null) {
        // 输出当前层级异常的类名与错误信息
        System.out.println(throwable.getClassName() + ": " + throwable.getMessage());
        // 切换到下一层嵌套异常
        throwable = throwable.getCause();
    }
}

输出效果

上述代码执行后会按从外到内的顺序输出所有嵌套异常:

java.lang.Exception: First Exception
java.lang.Exception: Second Exception
java.lang.Exception: Third Exception

扩展说明

如果需要同时获取异常的栈轨迹信息,可调用IThrowableProxy的getStackTraceElementProxyArray()方法,获取当前层级异常对应的栈帧代理数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:27:08