Логгирование в Java с помощью SLF4J и Logback
SLF4J (Simple Logging Facade for Java) обеспечивает интерфейс для логгирования, который является общим для различных реализаций логгеров (например, Logback или Log4j). Это позволяет вам изменить реализацию логгера без изменения кода.
1️⃣ Для начала установите зависимости в вашем файле pom.xml:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.3.0-alpha5</version>
</dependency>
</dependencies>
2️⃣ Затем создайте класс с помощью следующего кода, чтобы протестировать логгирование:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ExampleLogger {
private static final Logger logger = LoggerFactory.getLogger(ExampleLogger.class);
public static void main(String[] args) {
logger.debug("This is a debug message");
logger.info("This is an info message");
logger.warn("This is a warning message");
logger.error("This is an error message");
}
}
В этом примере мы создаем статическое поле logger с помощью LoggerFactory и инициализируем его с классом, в котором он используется (ExampleLogger). Затем мы можем использовать этот logger, чтобы записывать различные уровни сообщений (debug, info, warn, error).
3️⃣ Чтобы настроить вывод логов, создайте файл logback.xml в ресурсах вашего проекта со следующим содержимым:
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
Эта конфигурация использует ConsoleAppender для вывода логов на консоль. Он также определяет формат вывода логов с использованием pattern. Уровень логов задан как INFO, что означает, что будут выводиться все сообщения уровней INFO, WARN и ERROR.
Теперь при запуске класса ExampleLogger вы увидите сообщения различных уровней вывода в соответствии с вашей конфигурацией логгера.