Настройка ведения журнала в Spring Boot с помощью SLF4J и Logback

May 06 2023
Spring Boot использует инфраструктуру Simple Logging Facade for Java (SLF4J) в качестве интерфейса ведения журнала. SLF4J предоставляет универсальный API ведения журналов, который может быть реализован различными платформами ведения журналов, такими как Logback, Log4j2 и java.

Spring Boot использует инфраструктуру Simple Logging Facade for Java ( SLF4J ) в качестве интерфейса ведения журнала. SLF4J предоставляет общий API ведения журналов, который может быть реализован различными платформами ведения журналов, такими как Logback, Log4j2 и java.util.logging.

Существует несколько уровней ведения журнала , включая TRACE, DEBUG, INFO, WARN и ERROR, которые можно использовать для указания уровня детализации журнала.

  1. TRACE: это самый подробный уровень ведения журнала, он фиксирует мелкие детали, такие как вызовы методов, значения переменных и поток выполнения. Журнал TRACE следует использовать для устранения сложных проблем.
  2. DEBUG: собирает информацию о поведении приложения, которая может быть полезна при устранении неполадок. Этот уровень подходит для сред разработки и тестирования, где важно иметь подробную информацию о поведении приложения.
  3. ИНФОРМАЦИЯ: этот уровень используется для регистрации важных событий приложения, таких как сообщения о запуске и завершении работы, успешный вход пользователей в систему и основные изменения конфигурации. Этот уровень следует использовать в рабочих средах для сбора информации, которая может помочь определить основную причину проблем.
  4. ПРЕДУПРЕЖДЕНИЕ. Этот уровень используется для регистрации потенциально опасных событий, таких как неудачные попытки входа в систему или неправильные параметры конфигурации. Этот уровень следует использовать для регистрации событий, требующих внимания, но не обязательно указывающих на критическую проблему.
  5. ОШИБКА: этот уровень используется для регистрации критических ошибок, требующих немедленного внимания, таких как сбои приложений или повреждение данных.

Чтобы включить ведение журнала, импортируйте Logger и LoggerFactory из файла org.slf4j.

Если в application.properties не задано никаких конфигураций, уровень журнала по умолчанию будет INFO.

Выход:

Сообщения DEBUG и TRACE не отображались, потому что уровень журнала приложения установлен на INFO, который имеет более высокий уровень приоритета, чем эти два.

Если уровень журнала был установлен на ERROR, то будет отображаться только сообщение об ошибке, так как это самый высокий уровень журнала из 5 встроенных уровней.

Мы можем настроить шаблон ведения журнала с помощью приведенной ниже конфигурации в файле application.properties.

Выход:

Пользовательское ведение журнала с Logback

Ведение журнала по умолчанию достаточно для начала работы и целей POC. Но в реальных корпоративных приложениях нам нужен более точный контроль над ведением журнала с другими сложными требованиями. В этом случае подойдет специальная конфигурация ведения журнала.

Spring boot по умолчанию использует logback, поэтому, чтобы настроить его поведение, нам нужно добавить logback.xml в путь к классам и определить настройку файла.

В приведенном ниже файле конфигурации используется приложение консоли и приложение скользящего файла.

ConsoleAppender регистрирует выходные данные на основе шаблона, заданного внутри ConsoleAppender.

В RollingFileAppenderсоздаст новый файл для хранения файла журнала на основе скользящей политики. Внутри скользящей политики мы указываем шаблон имени файла, максимальный размер файла, общий размер всех архивных файлов и дни хранения файла.

Если вы хотите изучить аутентификацию и авторизацию Spring Security:

10 лучших курсов по изучению Spring Security и OAuth2 с Spring Boot для разработчиков Java в 2023 году

Обратитесь к этим ссылкам: Доступ на основе ролей Spring Security с помощью Spring Boot && Spring Security Authenctication & Authorization с JWT

Доменико Николи Ява Техно Трей Хаффин Арслан Ахмад