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
Читайте также:
- Spring Boot: логирование
- Spring Boot: логирование, формат логов
- Spring Boot: логирование, консольный вывод
- Spring Boot: логирование, цветовой вывод
- Spring Boot: логирование, файл вывода
- Spring Boot: логирование, уровни журнала
- Spring Boot: логирование, группы журналов
Комментарии
Отправить комментарий