gpt4 book ai didi

java - Log4j 格式化 : Is it possible to truncate stacktraces?

转载 作者:IT老高 更新时间:2023-10-28 21:05:50 31 4
gpt4 key购买 nike

我只想在我的程序中记录前几行异常。我知道,我可以这样做来只打印堆栈跟踪的前 5 行:

Throwable e = ...;
StackTraceElement[] stack = e.getStackTrace();
int maxLines = (stack.length > 4) ? 5 : stack.length;
for (int n = 0; n < maxLines; n++) {
System.err.println(stack[n].toString());
}

但我宁愿使用 log4j(或者更准确地说是 slf4j 而不是 log4j)进行日志记录。有没有办法告诉 log4j 它应该只打印堆栈跟踪的前 5 行?

最佳答案

您可以在 log4j 中使用 EnhancedPatternLayout 来格式化您的堆栈跟踪。

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/EnhancedPatternLayout.html ,特别是模式表中关于“可 throw ”模式的部分。

请注意,对 %throwable{n} 的支持是相当新的,至少需要 log4j 1.2.16(这是撰写本文时的最新版本)

出于跟踪目的,这是处理其实现的票证: https://issues.apache.org/bugzilla/show_bug.cgi?id=48902

关于java - Log4j 格式化 : Is it possible to truncate stacktraces?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263741/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com