Код: Выделить всё
com.example.orange). Моя цель — динамически включить журналы DEBUG/TRACE только для этого пакета на основе специального ключа MDCВот конфигурация, которую я использую для конкретного пакета. регистратор:
Код: Выделить всё
# Appenders
appender.console.type=Console
appender.console.name=Console
appender.console.target=SYSTEM_OUT
appender.console.follow=true
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=${LOG_PATTERN}
logger.app.name=com.example.orange
logger.app.level=warn
logger.app.additivity=false
logger.app.appenderRef.console.ref=Console
# Dynamic threshold filter: supposed to apply DEBUG for only the com.example.orange package
logger.app.filter.type=DynamicThresholdFilter
logger.app.filter.key=requestLogLevel
logger.app.filter.defaultThreshold=WARN
logger.app.filter.onMatch=ACCEPT
logger.app.filter.onMismatch=NEUTRAL
logger.app.filter.keyValuePair.type=KeyValuePair
logger.app.filter.keyValuePair.key=TRACE
logger.app.filter.keyValuePair.value=TRACE
logger.app.filter.keyValuePair[1].type=KeyValuePair
logger.app.filter.keyValuePair[1].key=DEBUG
logger.app.filter.keyValuePair[1].value=DEBUG
Если я перенесу DynamicThresholdFilter в глобальный фильтр, например:
Код: Выделить всё
# Appenders
appender.console.type=Console
appender.console.name=Console
appender.console.target=SYSTEM_OUT
appender.console.follow=true
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=${LOG_PATTERN}
filter.console.type=DynamicThresholdFilter
filter.console.key=requestLogLevel
filter.console.defaultThreshold=WARN
filter.console.onMatch=ACCEPT
filter.console.onMismatch=NEUTRAL
filter.console.keyValuePair.type=KeyValuePair
filter.console.keyValuePair.key=TRACE
filter.console.keyValuePair.value=TRACE
filter.console.keyValuePair[1].type=KeyValuePair
filter.console.keyValuePair[1].key=DEBUG
filter.console.keyValuePair[1].value=DEBUG
Устранение неполадок, которые я пробовал:
- Проверил, что requestLogLevel MDC ключ установлен правильно.
- Убедился, что для logger.app.additivity установлено значение false, чтобы избежать наследования конфигураций от корневого средства ведения журнала.
- Подтверждено, что глобальный DynamicThresholdFilter работает должным образом, но применяется глобально ко всем пакетам.
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-log4j2
Мобильная версия