Логгирование в Java

Java

logging — встроена в язык Java

java.util.logging

JDK начиная с 1.4

Уровни логирования: info — информационные сообщения, sever — ошибки, fine — дебаг

Обработчики (Handlers): для консоли, для файла

Минусы: Низкая производительность, мало гибкости, нет расширения функционала

Log4j — популярная OpenSource либа

org.apache.log4j.Logger

Уровни логирования: info — информационные сообщения, error — ошибки, debug — дебаг

Обработчики (Appenders):

  1. File,

2. Console,

3. RollingFile (Daily) — ежедневные логи,

4. JDBC — ог в базу данных,

5. SMTP — лог по почте,

6. JMS (JMS — это API для обмена сообщениями в приложениях Java) — короче централизованный сервер в Java EE, по сути централизованный аналог Kafka (тоже имеет брокеры и тп)

Facade libraries

Фасадные либы не содержат никакой функциональности, у них есть только интерфейсы

Apache common — фасадная либа, менее популярна чем Slf4j

Slf4j — фасадная либа

Большинство новых либ по умолчанию поддерживают ведения логов с интерфейсом Slf4j

Logback — либа Spring

Logback поддерживает Slf4j

Зависимость spring-boot-starter-web включает в себя spring-boot-starter , которая включает в себя spring-boot-starter-logging , в которую входит:

А logback программировал тот же программист из Швецарии — Ceki Gülcü, что и log4j, поэтому не удивляемся, что видим тут log4j. Так же видим тут фасадную либу slf4j — которая не вносит функционал, а выделяет общий функционал у всех библиотек логирования и позволяет использовать этот функционал в зависимости от используемой библиотеки для логирования

Есть такая либа, как log4j2 она сделана уже компанией apach, эта же компания до 2015 года помогала и продвигала log4j . Так что, как ни парадоксально, но log4j и log4j2 имеют разных разработчиков, а log4j и logback . Вот наглядная страница разработчика и его проектов

Log4j2

Log4j2 поддерживает Slf4j

Собственная либа

Надо использовать Slf4j для универсальности

Источник

Оцените автора
Kosenkov.Pro
Добавить комментарий