Desidero registrare solo le prime righe di Eccezioni nel mio programma. Lo so, posso fare qualcosa di simile per stampare solo le prime 5 righe di uno stacktrace:Formattazione log4j: è possibile troncare gli stacktraces?
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());
}
Ma preferirei usare log4j (o slf4j sopra log4j per essere più precisi) per la registrazione. C'è un modo per dire a log4j che dovrebbe stampare solo le prime 5 righe di uno stacktrace?
meraviglioso,% throwable {5} fa proprio quello che mi serve. – rompetroll
Si noti che in caso di eccezioni annidate, questo interromperà misericordiosamente i messaggi nidificati, quindi per molti casi d'uso del mondo reale, questo è inutile. Ciò di cui gli sviluppatori avrebbero bisogno sarebbe limitare il numero di elementi stack per eccezione nella traccia. – tkruse