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

1. Общ преглед

В този бърз урок ще покажем как да регистрираме изключения в Java, използвайки API на SLF4J. Ще използваме API на slf4j-simple като реализация на регистрацията.

Можете да изследвате различни техники за регистриране в една от предишните ни статии.

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

Първо, трябва да добавим следните зависимости към нашия pom.xml :

 org.slf4j slf4j-api 1.7.30   org.slf4j slf4j-simple 1.7.30 

Най-новите версии на тези библиотеки могат да бъдат намерени в 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.