Pull to refresh

Всем привет!

Продолжаю серию полезных видео - https://youtu.be/j-i3NQiKbccТут по полочкам расписывает как работает логирование в Java.

Краткий конспект по архитектуре логирования:

  • адаптер - предоставляет API, которое вызывается из кода. Их всего 3 - SL4J, JCL (Apache Common Logging) и JBoss Logging. Самый распространенный и рекомендуемый - SLF4J

  • bridge - нужен, когда какая-то библиотека использует не тот адаптер, что мы хотим. По сути адаптер на адаптер, который эмулирует API, вызываемое из кода, и пробрасывает вызовы в нужный адаптер, как правило SLF4J. Понятно, что когда у нас есть адаптер на адаптер, есть риск бесконечной рекурсии. Про это надо помнить)

  • движок логгера - компонента, которая пишет логи. Примеры: log4j, log4j2, logback, JUL\JDK (встроенный в JDK)

  • appender - компонент, определяющий физическое место, куда пишутся логи: консоль, диск, БД, MQ... Вот полный список для log4j2 https://logging.apache.org/log4j/2.x/manual/appenders.html

  • фильтры и конверторы - позволяют отфильтровать или преобразовать сообщения на клиенте

Плюс 3 хороших совета:

  • соблюдать гигиену classpath - чистить его от лишних библиотек

  • логи могут стать основой мониторинга. Мы отбрасываем специальным образом размеченную запись в лог, которая после обработки становится событием мониторинга

  • не добавлять в свои библиотеки как зависимость движок логгера. Пусть его выберет потребитель, а не разбирается с транзитивными зависимостями

И 2 полезные утилиты - миграторы на logback и SLF4J с альтернативных библиотек.

Tags:
Total votes 1: ↑1 and ↓0+3
Comments0

Articles