Подтвердить что ты не робот

Получение stacktrace в журнале

Я использую log4j для регистрации моих исключений. Я хочу регистрировать все, что получаю в e.printStackTrace();
Мой код выглядит следующим образом:

try{}catch(Exception e)
{
log.error("Exception is:::"+e);
}

Но содержимое, которое я регистрирую, выглядит следующим образом:

2012-02-02 12:47:03,227 ERROR [com.api.bg.sample] - Exception in unTech:::[Ljava.lang.StackTraceElement;@6ed322
2012-02-02 12:47:03,309 ERROR [com.api.bg.sample] - Exception is :::java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

Но контент, который я ожидаю,

java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at com.api.bg.sample.unGZIP(sample.java:191)
at com.api.bg.sample.main(sample.java:69)

Я попробовал e.getMessage(), e.getStackTrace(); однако я не получаю полный стек. Любые предложения?

4b9b3361

Ответ 2

Измените свой оператор регистрации:

log.error("Exception is: ", e);

Ответ 3

Фактически log4j предотвращает печать полной таблицы stacktrace. Однако вы должны установить исключение как второй параметр для метода ошибки.