Недопустимый аргумент для setLoggerLevel() loggingmxbean

При попытке вызвать setLoggerLevel() через jconsole я получаю исключение "Недопустимый аргумент (плохой уровень)". Метод вызывается успешно, если я даю уровень как "INFO". все, кроме этого, вызывает исключение.

1 ответ

Вы уверены, что передаете правильное имя регистратора? Из документа Java в разделе "Броски":

IllegalArgumentException - если loggerName не зарегистрированный регистратор, или если levelName не является нулем и недопустимым значением.

Это тот же самый документ от Sun (Oracle) или IBM.

Кажется, у IBM есть ошибочная реализация для этого, которую я видел в WebSphere 7.0, где она генерирует исключение NullPointerException для уровня журнала, даже если, согласно документу java, вам разрешено это делать.

Если у вас есть какой-либо контроль над приложением и вы можете создать новый MBean, вы можете напрямую использовать API журналирования и полностью исключить использование LoggingMXBean. Затем вы можете контролировать уровень ведения журнала через jconsole и ваш новый MBean.

Допустимые уровни, поддерживаемые setLoggerLevel являются следующими:

  • ВЫКЛ.
  • ТЯЖЕЛАЯ ФОРМА
  • ПРЕДУПРЕЖДЕНИЕ
  • ИНФОРМАЦИЯ
  • КОНФИГУРАЦИЯ
  • Штраф
  • FINER
  • НАИЛУЧШИЙ
  • ВСЕ

Подробнее см. java.util.logging.Level.

Другие вопросы по тегам