Spring Boot: логирование, расширения Logback
Spring Boot включает в себя несколько расширений Logback, которые могут помочь с расширенной настройкой. Вы можете использовать эти расширения в файле конфигурации logback-spring.xml.
Поскольку стандартный файл конфигурации logback.xml загружается слишком рано, в нем нельзя использовать расширения. Вам нужно либо использовать logback-spring.xml, либо определить свойство logging.config.
Расширения не могут быть использованы при сканировании конфигурации Logback. Если вы попытаетесь это сделать, внесение изменений в файл конфигурации приведет к ошибке, аналогичной одной из следующих:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProperty], current ElementPath is [[configuration][springProperty]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]
Конфигурация для конкретного профиля
Тег <springProfile> позволяет при желании включать или исключать разделы конфигурации на основе активных профилей Spring. Разделы профиля поддерживаются в любом месте элемента <configuration>. Используйте атрибут name, чтобы указать, какой профиль принимает конфигурацию. Тег <springProfile> может содержать простое имя профиля (например, staging) или выражение профиля. Выражение профиля позволяет выразить более сложную логику профиля, например, production & (eu-central | eu-west). Следующий листинг показывает три примера профиля:
<springProfile name="staging">
<!-- конфигурация, которая будет применена когда активен профиль "staging" -->
</springProfile>
<springProfile name="dev | staging">
<!-- конфигурация, которая будет применена когда активен профиль "dev" или "staging" -->
</springProfile>
<springProfile name="!production">
<!-- конфигурация, которая будет применена когда профиль "production" не активен -->
</springProfile>
Свойства Environment
Тег <springProperty> позволяет вам выставлять свойства из Spring Environment для использования в Logback. Это может быть полезно, если вы хотите получить доступ к значениям из файла application.properties в конфигурации Logback. Этот тег работает аналогично стандартному тегу Logback <property>. Однако вместо указания прямого value вы указываете source свойства (из Environment). Если вам нужно сохранить свойство где-то, кроме локальной области, вы можете использовать атрибут scope. Если вам нужно запасное значение (если свойство не задано в Environment), вы можете использовать атрибут defaultValue. В следующем примере показано, как предоставить свойства для использования в Logback:
<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"
defaultValue="localhost"/>
<appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender">
<remoteHost>${fluentHost}</remoteHost>
...
</appender>
source должен быть указан в kebab case (нижний регистр с разделением в виде дефисов) (например, my.property-name). Тем не менее, свойства могут быть добавлены в Environment с помощью смягченных правил.
Читайте также:
- Spring Boot: логирование
- Spring Boot: логирование, формат логов
- Spring Boot: логирование, консольный вывод
- Spring Boot: логирование, цветовой вывод
- Spring Boot: логирование, файл вывода
- Spring Boot: логирование, уровни журнала
- Spring Boot: логирование, группы журналов
- Spring Boot: логирование, пользовательская конфигурация
Комментарии
Отправить комментарий