Spring Boot: логирование, пользовательская конфигурация

Различные системы журналирования могут быть активированы путем включения соответствующих библиотек в путь к классам и могут быть дополнительно настроены путем предоставления подходящего файла конфигурации в корне пути к классам или в местоположении, указанном следующим свойством Spring Environment: logging.config.

Вы можете заставить Spring Boot использовать определенную систему ведения журнала, используя системное свойство org.springframework.boot.logging.LoggingSystem. Значением должно быть полное имя класса реализации LoggingSystem. Вы также можете полностью отключить конфигурацию ведения журнала Spring Boot, указав значение none.

Поскольку ведение журнала инициализируется до создания ApplicationContext, управление журналом из @PropertySources в файлах Spring @Configuration невозможно. Единственный способ изменить систему ведения журнала или полностью ее отключить - это через Свойства системы.

В зависимости от вашей системы ведения журнала загружаются следующие файлы:

Система журнала Настройка
Logback logback-spring.xml, logback-spring.groovy, logback.xml, или logback.groovy
Log4j2 log4j2-spring.xml или log4j2.xml
JDK (Java Util Logging) logging.properties

Когда это возможно, рекомендуется использовать варианты -spring для конфигурации журналирования (например, logback-spring.xml, а не logback.xml). Если вы используете стандартные местоположения конфигурации, Spring не может полностью контролировать инициализацию журнала.

Известны проблемы с загрузкой классов Java Util Logging, которые вызывают проблемы при запуске из «исполняемого файла jar». Рекомендуется избегать эту систему при запуске из «исполняемого файла jar», если это возможно.

Чтобы помочь с настройкой, некоторые другие свойства переносятся из Spring Environment в свойства системы, как описано в следующей таблице:

Spring Environment Свойство системы Описание
logging.exception-conversion-word LOG_EXCEPTION_CONVERSION_WORD Слово преобразования, используемое при регистрации исключений.
logging.file.clean-history-on-start LOG_FILE_CLEAN_HISTORY_ON_START Очистить ли файлы архивных журналов при запуске (если включен LOG_FILE). (Поддерживается только с настройкой Logback по умолчанию.)
logging.file.name LOG_FILE Файл логов. Если он определен, он используется в конфигурации журнала по умолчанию.
logging.file.max-size LOG_FILE_MAX_SIZE Максимальный размер файла журнала (если LOG_FILE включен). (Поддерживается только с настройкой Logback по умолчанию.)
logging.file.max-history LOG_FILE_MAX_HISTORY Максимальное количество файлов архивных журналов (если включен LOG_FILE). (Поддерживается только с настройкой Logback по умолчанию.)
logging.file.path LOG_PATH Путь к логам. Если он определен, он используется в конфигурации журнала по умолчанию.
logging.file.total-size-cap LOG_FILE_TOTAL_SIZE_CAP Общий размер резервных копий журнала (если включен LOG_FILE). (Поддерживается только с настройкой Logback по умолчанию.)
logging.pattern.console CONSOLE_LOG_PATTERN Шаблон журнала для использования на консоли (стандартный вывод). (Поддерживается только с настройкой Logback по умолчанию.)
logging.pattern.dateformat LOG_DATEFORMAT_PATTERN Шаблон Appender для формата даты журнала. (Поддерживается только с настройкой Logback по умолчанию.)
logging.pattern.file FILE_LOG_PATTERN Шаблон журнала для использования в файле (если включен LOG_FILE). (Поддерживается только с настройкой Logback по умолчанию.)
logging.pattern.level LOG_LEVEL_PATTERN Формат, используемый при отображении уровня журнала (по умолчанию %5p). (Поддерживается только с настройкой Logback по умолчанию.)
logging.pattern.rolling-file-name ROLLING_FILE_NAME_PATTERN Шаблон для пролонгированных имен файлов журнала (по умолчанию ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz). (Поддерживается только с настройкой Logback по умолчанию.)
PID PID Текущий идентификатор процесса (обнаруживается, если это возможно, и когда он еще не определен как переменная среды ОС).

Все поддерживаемые системы ведения журналов могут обращаться к свойствам системы при анализе своих файлов конфигурации. Посмотрите конфигурации по умолчанию в spring-boot.jar для примеров:

Если вы хотите использовать заполнитель в свойстве ведения журнала, вы должны использовать синтаксис Spring Boot, а не синтаксис базовой платформы. В частности, если вы используете Logback, вы должны использовать : в качестве разделителя между именем свойства и значением по умолчанию, а не использовать :-.

Вы можете добавить MDC и другое специальное содержимое в строки журнала, переопределив только LOG_LEVEL_PATTERN (или logging.pattern.level с Logback). Например, если вы используете logging.pattern.level=user:%X{user} %5p, тогда формат журнала по умолчанию содержит запись MDC для «user», если она существует, как показано в следующем примере.

2019-08-30 12:30:04.031 user:someone INFO 22174 --- [  nio-8080-exec-0] demo.Controller
Handling authenticated request


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки