Точный ответ на ваш вопрос заключается в том, что вы должны называть Log4J следующим образом:
private void _showErrorMessage(Exception e) {
log.error(e.getClass() + ": " + e.getMessage() + ": " + e.getCause(), e);
}
Хотя я бы обошелся без вызова e.getCause (), потому что трассировка стека в любом случае даст вам это, поэтому:
private void _showErrorMessage(Exception e) {
log.error(e.getClass() + ": " + e.getMessage(), e);
}
ExceptionUtils - это хорошо, если вам действительно нужна строка трассировки стека, но поскольку вы используете Log4J, вы теряете много, не используя встроенную обработку исключений.