Java Logging (SLF4J, Logback) — всё, что нужно знать
1. Логирование → запись событий приложения для отладки и мониторинга
Помогает находить проблемы без запуска отладчика
Пример: запись неудачной попытки входа для целей безопасности
2. SLF4J → простой фасад для логирования в Java
Вы пишете код против API SLF4J, а дальше подключаете любую реализацию логгера
Пример: один и тот же код будет работать с Logback, Log4j или java.util.logging
3. Logback → популярный backend для логирования
Высокая производительность, гибкость, поддержка фильтров и политик ротации
Пример: запись логов в файл с ежедневной ротацией
4. Зачем использовать SLF4J + Logback
- SLF4J → возможность менять backend без переписывания кода
- Logback → функционал продакшен-уровня и высокая производительность
5. Уровни логирования (общие для большинства фреймворков)
-
-
-
-
-
6. Пример настройки
🔸 Используйте параметризованное логирование
🔸 Выбирайте правильный уровень логов — не захламляйте прод debug-сообщениями
🔸 Разделяйте логи приложения и фреймворков
🔸 Применяйте политику ротации, чтобы не копились огромные файлы
🔸 Добавляйте correlation ID для трейсинга запросов между сервисами
Не логируйте чувствительные данные (пароли, токены)
👉 Java Portal
1. Логирование → запись событий приложения для отладки и мониторинга
Помогает находить проблемы без запуска отладчика
Пример: запись неудачной попытки входа для целей безопасности
2. SLF4J → простой фасад для логирования в Java
Вы пишете код против API SLF4J, а дальше подключаете любую реализацию логгера
Пример: один и тот же код будет работать с Logback, Log4j или java.util.logging
3. Logback → популярный backend для логирования
Высокая производительность, гибкость, поддержка фильтров и политик ротации
Пример: запись логов в файл с ежедневной ротацией
4. Зачем использовать SLF4J + Logback
- SLF4J → возможность менять backend без переписывания кода
- Logback → функционал продакшен-уровня и высокая производительность
5. Уровни логирования (общие для большинства фреймворков)
-
TRACE
→ подробная внутренняя информация (редко в продакшене)-
DEBUG
→ отладочная информация (например, значения переменных)-
INFO
→ общие события высокого уровня (например, «Пользователь успешно зарегистрирован»)-
WARN
→ неожиданные, но восстанавливаемые ситуации (например, повторный запрос)-
ERROR
→ критические ошибки, влияющие на функционал6. Пример настройки
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyService {
private static final Logger logger = LoggerFactory.getLogger(MyService.class);
public void processOrder(String orderId) {
logger.info("Processing order {}", orderId);
try {
// бизнес-логика
} catch (Exception e) {
logger.error("Error processing order {}", orderId, e);
}
}
}
logger.debug("User {} logged in", userId)
→ избегайте конкатенации строкНе логируйте чувствительные данные (пароли, токены)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Чувак сделал несколько Live Templates для intellijidea, которыми часто пользуется
👉 https://github.com/sivaprasadreddy/intellij-live-templates
С каждой новой версией IntelliJ IDEA часть этих штук появляется прямо из коробки
Например, шаблоны для логов и создания Spring-компонентов уже доступны OOTB
На примере небольшой демо, как можно быстро создавать логгер и Spring-компоненты прямо в intellijidea
👉 Java Portal
С каждой новой версией IntelliJ IDEA часть этих штук появляется прямо из коробки
Например, шаблоны для логов и создания Spring-компонентов уже доступны OOTB
На примере небольшой демо, как можно быстро создавать логгер и Spring-компоненты прямо в intellijidea
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1