При использовании log4j, Logger.log(Priority p, Object message)
метод доступен и может использоваться для входа сообщения на уровне журнала, определенном во времени выполнения. Мы используем этот факт и эту подсказку для перенаправления stderr к регистратору на определенном уровне журнала.
slf4j не имеет дженерика log()
метод, который я могу найти. Это означает, что нет никакого способа реализовать вышеупомянутое?
Это невозможно сделать с помощью slf4j
.
Я полагаю, что причина отсутствия этой функциональности заключается в том, что практически невозможно создать тип Level
для slf4j
, который можно эффективно сопоставить с уровнем .
(или эквивалентный) тип, используемый во всех возможных реализациях ведения журнала за фасадом. С другой стороны, разработчики решили, что ваш вариант использования слишком необычен , чтобы оправдать накладные расходы на его поддержку.
Что касается @ ripper234 варианта использования (модульное тестирование), я думаю, что прагматическое решение состоит в изменении модульного теста (ов), чтобы жестко определить, какая система ведения журнала находится за фасадом slf4j ... при запуске модульных тестов.
нет, у него есть несколько методов, info (), debug (), warn () и т. д. (заменяет поле приоритета)
полный api Logger см. на http://www.slf4j.org/api/org/slf4j/Logger.html .