Ich möchte nur die ersten paar Zeilen von Ausnahmen in meinem Programm protokollieren. Ich weiß, ich etwas tun kann, nur die ersten fünf Zeilen eines Stacktrace drucken:Log4j-Formatierung: Ist es möglich, Stacktraces abzuschneiden?
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());
}
Aber ich würde eher verwenden log4j (oder slf4j über log4j um genauer zu sein) für die Protokollierung. Gibt es eine Möglichkeit, log4j mitzuteilen, dass nur die ersten 5 Zeilen eines Stacktrace gedruckt werden sollen?
wunderbar% throwable {5} tut genau das, was ich brauche. – rompetroll
Beachten Sie, dass bei verschachtelten Exceptions die verschachtelten Nachrichten gnadenlos abgeschnitten werden, was für viele Anwendungsfälle in der Praxis nutzlos ist. Was Entwickler benötigen würde, wäre die Anzahl der Stack-Elemente pro Ausnahme in der Ablaufverfolgung zu begrenzen. – tkruse