Spring Boot SLF4J логирование

Сегодня будем подключать логер SLF4J к написанному ранее проекту Spring Boot и Thymeleaf JAR.

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

1. Структура каталогов

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

По умолчанию SLF4j уже включен в стартовый пакет Spring Boot

3. Настройка через application.properties

Что бы включить логирование, создадим application.properties файл в корне папки resources.

3.1 logging.level – определяет уровень логирования, все логи будут выводиться в консоль.

3.2 logging.file – определяет имя файла для логирования, логи будут писаться как в консоль так и в файл одновременно

[stextbox id=’warning’]System.getProperty(«java.io.tmpdir») — возвращает путь к временному каталогу операционной системы, да вот с небольшой помаркой!!!
Windows: «C:\Windows\Temp\»
Linux: «/tmp»
Обратите внимание — в первом случае завершающий слеш есть, а во втором — слеша нет, что требует дополнительной проверки в коде[/stextbox]

3.3 logging.pattern – определяет собственные правила(шаблон) ведения журнала

4. application.yml

Аналогичный пример в формате

5. Стандартный Logback.xml

Если не нравится шаблон логирования который предлагает Spring Boot, просто создаем стандартный файл logback.xml в корневой папке resources или корне classpath. Это переопределит шаблон логгера Spring Boot.

6. Логирование в Spring Boot + Profile

[stextbox id=’info’]Подробнее в Profile-specific configuration[/stextbox]

Создаем logback-spring.xml в корне classpath, это даст нам возможность использовать фичи шаблонов от Spring Boot.

В примере ниже:

  • Если профиль dev, пишем в консоль и файл;
  • Если профиль prod, пишем только в файл;

Для не веб приложений можно переопределить логгер через аргументы при запуске приложения

5. Установка Root Level

Бывают ситуации когда места на серверах довольно мало, у меня была подобная ситуация с приложением у одного африканского банка. Мы можем ограничить уровень логирования

И по аналогии YAML

 

 

ССЫЛКИ

  1. Spring Boot – How to Logging
  2. Spring Boot Logback XML template
  3. Spring Boot: How can I set the logging level with application.properties?
  4. logback.xml Examples
  5. Logback Home
  6. wiki/Slf4J
  7. spring-boot-slf4j-logging
Подписаться
Уведомлять о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

4 комментариев
старым
новым колличеству голосов
Межтекстовые Отзывы
Посмотреть все комментарии
Андрей
Андрей
10.12.2019 22:42

Тема не раскрыта. Как новичку не понятно как применить это. Одни конфиги расписали, а примера из кода нету.

Дмитрий
Дмитрий
09.09.2021 17:00
Ответить на  Leodev

А не подскажите, как писать логи в файл только те которые мне нужны, а не весь журнал спрингбута, то есть только то что я сам захочу через LOGGER. info() например

4
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Leo Dev Blog | LD
Обзор конфиденциальности

На сайте используются обязательные и аналитические файлы cookie.

Обязательные cookie необходимы для корректной работы сайта.

Аналитические cookie используются для анализа посещаемости и улучшения работы сайта.

Вы можете изменить настройки использования cookie.