Регистрация исключений с помощью SLF4J

Регистрация исключений с помощью SLF4J

1. обзор

В этом кратком руководстве мы покажем, как регистрировать исключения в Java с помощью APISLF4J. Мы будем использовать APIslf4j-simple в качестве реализации ведения журнала.

Вы можете изучить различные методы ведения журнала в одном из нашихprevious articles.

2. Maven Зависимости

Во-первых, нам нужно добавить следующие зависимости к нашемуpom.xml:


    org.slf4j
    slf4j-api
    1.7.25



    org.slf4j
    slf4j-simple
    1.7.25

Последние версии этих библиотек можно найти наMaven Central.

3. Примеры

Обычно все исключения регистрируются с использованием методаerror(), доступного в классеLogger. Существует довольно много вариантов этого метода. Мы собираемся изучить:

void error(String msg);
void error(String format, Object... arguments);
void error(String msg, Throwable t);

Давайте сначала инициализируемLogger, которые мы собираемся использовать:

Logger logger = LoggerFactory.getLogger(NameOfTheClass.class);

Если нам просто нужно показать сообщение об ошибке, то мы можем просто добавить:

logger.error("An exception occurred!");

Вывод приведенного выше кода будет:

ERROR packageName.NameOfTheClass - An exception occurred!

Это достаточно просто. Но чтобы добавить более релевантную информацию об исключении (включая трассировку стека), мы можем написать:

logger.error("An exception occurred!", new Exception("Custom exception"));

Выход будет:

ERROR packageName.NameOfTheClass - An exception occurred!
java.lang.Exception: Custom exception
  at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

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

logger.error("{}, {}! An exception occurred!",
  "Hello",
  "World",
  new Exception("Custom exception"));

В приведенном выше фрагменте сообщениеString будет отформатировано на основе переданных сведений об объекте. Мы использовали фигурные скобки в качестве заполнителей для параметровString, переданных в метод.

В этом случае вывод будет:

ERROR packageName.NameOfTheClass - Hello, World! An exception occurred!
java.lang.Exception: Custom exception
  at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

4. Заключение

В этом кратком руководстве мы узнали, как регистрировать исключения с помощью API SLF4J.

Фрагменты кода доступны вGitHub repository.

Related