Java. log4j и обработкой исключений

253
21 апреля 2017, 18:57

Привет.

Есть метод, который бросает исключение:

throws ClientProtocolException, ServerException, 
    UnsecuredConnectionAttemptError, IOException{

Как регистрировать эти исключения в журнале с помощью log4j ?

Answer 1

Перехватит его в catch и записать в лог с нужным вам уровнем.

// в начале класса
private static final Logger logger = LogManager.getLogger(<имя класса>.class);

try {
    // код 
} catch(ClientProtocolException | ServerException | 
UnsecuredConnectionAttemptError | IOException ex) {
    logger.error("Что-то пошло не так", ex);
    throw ex;
}
Answer 2

Если вы активно используете потоки, то есть возможность подвесить обработчик исключений на поток. Тогда, если во время работы возникает исключение и оно не обрабатывается, то его можно будет перехватить и сделать какую то полезную работу, например сделать запись в лог.

Выглядит это следующим образом:

Thread thread = new Thread(() -> {
        method();
});
thread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
     @Override
     public void uncaughtException(Thread t, Throwable e) {
        //логирование сообщений об ошибках
     }
});
thread.start();
private static void method(){
    // что то там кидается
}
READ ALSO
как отфильтровать List по значению?

как отфильтровать List по значению?

принимаю с сервера такой json

252
Как сделать ответ цветным

Как сделать ответ цветным

Создайте программу-тест для проверки знаний таблицы умноженияС помощью случайных чисел создайте 5 примеров

229
Как создать Java generic класс, который принимает только Number или String и ничего более

Как создать Java generic класс, который принимает только Number или String и ничего более

Подскажите, пожалуйста, возможно ли создать Java generic класс, который принимает только Number или String и ничего болееЕсли указывать тип отличный...

226
При запуске JSP из Eclipse на Tomcat 9.0 сообщает о занятых портах

При запуске JSP из Eclipse на Tomcat 9.0 сообщает о занятых портах

При запуске Tomcat в Eclipse все происходит нормальноКогда пытаюсь запустить JSP файл выскакивает ошибка

175