Боюсь, что это невозможно при использовании slf4j
API.
slf4j
- это API фасада регистратора, который предоставляет только высокоуровневые методы, такие как debug
, trace
и т. Д. В нем нет понятия appenders, которое является деталью реализации ведения журнала с нижележащим бетоном, например log4j
.
Выдержка из FAQ по SLF4J :
SLF4J - это только фасад, а это означает, что он не обеспечивает полное решение для ведения журнала. Такие операции, как настройка дополнений или настройка уровней ведения журнала, не могут быть выполнены с SLF4J. Таким образом, в какой-то момент времени любое нетривиальное приложение должно будет напрямую вызывать базовую систему ведения журнала. Другими словами, полная независимость от API, лежащего в основе системы ведения журналов, невозможна для автономного приложения. Тем не менее, SLF4J снижает влияние этой зависимости до почти безболезненных уровней.
То же самое относится и к log4j2
API.
Какие есть варианты:
Отдельная часть кода, которая будет связана с регистратором log4j
и выполнит там необходимые настройки и проверки.
Другой подход заключается в приведении slf4j
logger к log4j
после проверки:
// log4j 1.x
if (logger instanceof org.apache.logging.log4j.core.Logger) {
org.apache.log4j.Logger log4j = (org.apache.log4j.Logger) logger;
// access to log4j.getAppender("APPENDER_NAME");
}