Я получаю исключение «Недопустимый аргумент (плохой уровень)», когда пытаюсь вызвать setLoggerLevel() через jconsole. Метод вызывается успешно, если я задаю уровень как «INFO». все, кроме этого, вызывает исключение.
Недопустимый аргумент для setLoggerLevel() loggingmxbean
Ответы (2)
Вы уверены, что передаете действительное имя регистратора? Из java-документа в разделе «Броски»:
IllegalArgumentException — если loggerName не является зарегистрированным регистратором или если levelName не равно null и является недопустимым значением.
Это тот же документ от Sun (Oracle) или IBM.
Кажется, у IBM для этого есть ошибочная реализация, которую я видел в WebSphere 7.0, где она выдает исключение NullPointerException для уровня журнала, хотя, согласно документу java, вам разрешено это делать.
ЕСЛИ у вас есть какой-либо контроль над приложением и вы можете создать новый MBean, вы можете напрямую использовать API ведения журнала и вообще избежать использования LoggingMXBean. Затем вы можете контролировать уровень ведения журнала через jconsole и новый MBean.
Допустимые уровни, поддерживаемые setLoggerLevel
, следующие:
- ВЫКЛЮЧЕННЫЙ
- ТЯЖЕЛЫЙ
- ПРЕДУПРЕЖДЕНИЕ
- ИНФОРМАЦИЯ
- КОНФИГУРАЦИЯ
- ОТЛИЧНО
- ТОНКИЙ
- ЛУЧШИЙ
- ВСЕ
Подробнее см. java.util.logging.Level
.