Пишем тысячи лог файлов одновременно

Ненормальное программированиеJavaGroovy & Grails
Tutorial

Привет, Товарищи!


Что будет, если в приложении Spring Boot выставить logging.level.root=TRACE?


Все логи будут записаны в один файл, в котором будет куча-мала из классов.


В лучшем случае, с помощью sifting appender можно разделить максимум по 1 критерию ("дискриминатору") — например по имени потока или по имени класса. И даже при этом — будет существовать записимость от исходного кода, который должен поддерживать значания дискриминатора в "MDC".


Стоп, стоп, стоп! Убираем logback, добавляем Бобину — и вот такой нехитрой конфигурацией пишем в отдельные лог файлы для каждого класса и уровня логирования — да ещё и в отдельные директории:


Bobbin.yml


destinations:
  - name: io.infinite.bobbin.config.FileDestinationConfig
    fileName: ("./LOGS/INFINITE/${className}/${level}/${className}_${level}_${date}.log")

И вот что получается:



А теперь представьте, что вы просите SRE коллегу:


- Пришли мне пожалуйста лог класса org.visa.api.Transfer
- Но там же номера карт?
- Только ERROR лог
- Ок! Сейчас будет.

Конечно, концептуально всё устремляется в сторону ELK (ну или splunk или grafana). Но он не везде настроен ещё — и старые-добрые лог файлы всё ещё довольно часто актуальны.


Но мы считаем, что нужно идти от частного к общему — умея делать такие трюки как выше, Бобина даст фору любому логгеру и в облачной среде. Ведь всё упирается в гибкость и простоту настройки.


Мы записали видео, демонстрирующее этот пример полностью, и показывающий работу Бобины в динамике:



Приятного просмотра!


Требуется: Java 8 или 11, Gradle
Ссылка на демо репозиторий


Сейчас мы наблюдаем массовый наплыв новых пользователей (и во многом благодаря Хабру — спасибо Вам!). Похоже, что в 2020 Бобина станет одним из самых популярных логгеров. Уже точно ясно что она станет в один ряд с logback и log4j2. В наших ближайших планах расширение API — а именно, поддержка Google Flogger.


Если вдруг вы ещё не пробовали — добавьте её в Ваши Gradle или Maven проекты.


Перед нашими глазами рождается история — зарождение Open Source организации нового типа.
И атлант уже расправляет плечи.


Всех благ!

Теги:slf4jbobbinloggingjavaspring bootspringgroovy
Хабы: Ненормальное программирование Java Groovy & Grails
+8
4k 29
Комментарии 8

Похожие публикации

Профессия Java-разработчик
2 февраля 202182 500 ₽SkillFactory
Java Developer. Professional
11 марта 202160 000 ₽OTUS
Java QA Engineer
16 марта 202160 000 ₽OTUS
Java Junior Developer
17 февраля 202123 990 ₽Level UP

Лучшие публикации за сутки