Ответ 1
Вы должны использовать две формы аргумента
log.error("my logging message", exception)
Подробнее см. http://www.devdaily.com/blog/post/java/how-print-exception-stack-trace-using-log4j-commons.
Я использую 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(); однако я не получаю полный стек. Любые предложения?
Вы должны использовать две формы аргумента
log.error("my logging message", exception)
Подробнее см. http://www.devdaily.com/blog/post/java/how-print-exception-stack-trace-using-log4j-commons.
Измените свой оператор регистрации:
log.error("Exception is: ", e);
Фактически log4j предотвращает печать полной таблицы stacktrace. Однако вы должны установить исключение как второй параметр для метода ошибки.