Как подключить логирование в проекте на Java, собираемого через Gradle, используя фасад Slf4j
Логирование является важной составляющей любого проекта на Java. Оно позволяет отслеживать работу приложения, выявлять ошибки и упрощать отладку. В данной заметке мы рассмотрим, как подключить логирование в проекте на Java, собираемого через Gradle, используя Slf4j и Lombok.
- Добавление зависимости и конфигурация Для использования slf4j и логирования в файл и консоль, необходимо добавить зависимости в файл build.gradle:
dependencies {
implementation 'org.slf4j:slf4j-api:2.0.7'
implementation 'org.slf4j:slf4j-log4j12:2.0.7'
implementation 'org.projectlombok:lombok:1.18.26'
}
Также необходимо в файле конфигурации application.yml добавить раздел с параметрами логирования:
logging:
level:
root: INFO
# org.springframework.web: DEBUG
# org.hibernate: ERROR
file:
name: ./logs/app.log
logrotate:
max-history: 10
max-size: 10MB
pattern:
console: "%d{dd-MM-yyyy HH:mm:ss.SSS} %-5level - %msg%n"
file: "%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
В данном примере мы настраиваем вывод логов в файл ./logs/app.log и в консоль. Файл app.log будет создан в каталоге проекта ./logs/. Также мы настраиваем максимальный размер файла и количество ротаций. Для примера, в закомментированных строчках показано, как можно индивидуально менять уровень логирования для разных пакетов. Также обратите внимание, что можно индивидуально настроить формат вывода строки сообщения в stdout и в файл.
- Использование логгера Для использования логгера в проекте, мы будем использовать Lombok и аннотацию @Slf4j. Для этого необходимо добавить зависимость lombok в файл build.gradle и аннотировать класс аннотацией @Slf4j:
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MyClass {
public static void main(String[] args) {
log.info("Hello, World!");
}
}
В данном примере мы создали объект логгера для класса MyClass с помощью аннотации @Slf4j. В методе main мы вызываем метод info у объекта логгера, чтобы вывести сообщение в лог.
Теперь мы можем использовать логгер в любом месте нашего приложения с помощью аннотации @Slf4j и вызова методов логгера (например, log.info("Some message")).
В заключение, мы рассмотрели, как подключить логирование в проекте на Java, используя slf4j и Lombok, и настроить его для вывода логов в файл и консоль, а также использовать конфигурацию логгера из файла application.yml. Это позволит упростить отладку приложения и быстро находить ошибки.
Иллюстрация подготовлена в Midjourney.
Эти источники были использованы для подготовки материала и предоставляют более подробную информацию о настройке логирования в проектах на Java, использовании Lombok и SLF4J, и конфигурации Log4j2.
- "Logging", Spring Boot Reference Documentation, https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging
- "Lombok", Project Lombok, https://projectlombok.org/
- "The Simple Logging Facade for Java", SLF4J, http://www.slf4j.org/
- "Log4j2 with SLF4J Configuration", HowToDoInJava, https://howtodoinjava.com/log4j2/log4j2-with-slf4j/
- "Configuring Log4j 2", Log4j 2 User's Guide, https://logging.apache.org/log4j/2.x/manual/configuration.html