Я использую SLF4j в качестве моей рамки ведения журнала, поддерживаемой log4j. Моя проблема в том, что я ищу способ изменить уровень ведения журнала для моего регистратора во время выполнения.Как изменить уровень slf4j во время выполнения?
Я понимаю, что slf4j не разрешает это напрямую через свой собственный API, и, следовательно, я должен напрямую обращаться к поставщику протоколирования. Лично я считаю, что это большой недостаток в slf4j. Итак, теперь мой вопрос заключается в том, как я могу определить программно через slf4j, какой провайдер я использую? Самая большая цель использования slf4j заключается в том, что вы становитесь агностиком провайдера - вы можете легко переключаться между вашей любимой системой ведения журнала, не перерабатывая ничего. Но теперь, если мне нужно делать прямые вызовы log4j, я теряю эту способность.
По крайней мере, я хотел бы иметь возможность определить, использую ли я log4j в качестве провайдера, и если да, то разрешите пользователю переключаться на уровни журналов.
Если я делаю LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)
, результатом является пример org.slf4j.impl.Log4jLoggerAdapter
и даже не org.apache.log4j.Logger
(как я бы надеялся/ожидал).
Есть ли способ узнать это?
Спасибо, Эрика
См.: [Как найти, к какой библиотеке slf4j привязали себя?] (Http://stackoverflow.com/questions/10505418) –
Спасибо. Я не уверен, почему я пропустил это в своем первоначальном поиске. –