Slf4J

28.12.2021


SLF4J (Simple Logging Facade for Java) — библиотека для протоколирования, ставящая своей целью предоставить максимально простой, но при этом мощный фасад для различных систем протоколирования на Java.

SLF4J предоставляет простой обобщённый интерфейс для систем протоколирования, не зависящий от конкретной реализации.

Реализация может быть выбрана и сконфигурирована без изменения кода приложения. Slf4J прозрачно интегрируется со следующими реализациями:

  • NOP — реализация, не выполняющая никаких действий
  • Simple — использование стандартного вывода для логов
  • Java Logging API — система протоколирования, включенная в JDK
  • Log4J — одна из наиболее известных систем протоколирования для java
  • JCL — фреймворк, также предоставляющий адаптер для протоколирования
  • LogBack — система протоколирования, представляющая собой развитие log4j и специально разработанная для использования совместно с slf4j

Дополнительно к этому, SLF4J предоставляет возможность интегрировать компоненты, зависимые от других систем протоколирования (Log4J, JCL), подставляя реализации, направляющие логи этих систем в SLF4J.

Пример использования

import org.slf4j.Logger; import org.slf4j.LoggerFactory; class MyClass { private Logger log = LoggerFactory.getLogger(MyClass.class); // 1. Объявляем переменную логгера ... log.debug("..."); // 2. Выводим строку в debug ... log.info("Some object: {}", object); // 3. Выводим в info строку с аргументом, подставляемым в неё ... log.error("Error during some job!!", e); // 4. Выводим в error ошибку, вместе с исключением }