Регистрация исключений с помощью 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.