Практически все Java logging Framework (увы, у нас их много ...) поддерживают установку Throwable
в качестве последнего параметра.
Это приведет к регистрации трассировки стека, что может быть чрезвычайно полезным для диагностики и устранения проблемы.
Я бы никогда не дал исключение регистратору, если причина исключения действительно хорошо известна, а печать исключения - просто ненужный шум. Например здесь:
try {
int port = Integer.parseInt(input);
// do something with the port
} catch (NumberFormatException e) {
logger.error("'{}' is not a valid port number: {}", input, e.toString);
}
Другой случай, когда исключение перебрасывается (и что-то еще, в конце концов, запишет его более подробно).
Но не с «Проблемой с сервером» (и на уровне FATAL не меньше). Похоже, вы хотите получить как можно больше информации.
Также обратите внимание, что в этих случаях e.toString()
обычно лучше, чем e.getMessage()
, поскольку оно также включает имя исключения в дополнение к его сообщению (которое может быть пустым).