/ / Як змінити рівень входу в log4j2 під час виконання програми - java, log4j2

Як змінити рівень журналювання в log4j2 під час виконання програми - java, log4j2

Будь ласка, виправте мене, якщо я помиляюся, але здається, що цеlog4j2.xml повинен знаходитись у класі шляху програми, і все на classpath упаковується у файл .jar, коли ви створюєте окремий .jar файл програми, який можна запустити.

Якщо це так, то XML-файл бути не можезмінено після експорту програми у файл .jar. Таким чином, не здається, що існує спосіб змінити рівень реєстрації без повторного експорту програми.

Скажіть, будь ласка, я не в цьому і томує спосіб, що я можу змінити рівень реєстрації під час роботи програми, використовуючи, скажімо, випадаючий список JFrame, щоб користувач міг вибрати рівень реєстрації.

Відповіді:

0 для відповіді № 1

Я раніше це використовував

LogManager.getRootLogger().setLevel(Level.DEBUG);

Ви можете змінити будь-який з рівнів журналу таким чином.


0 для відповіді № 2

Ви можете змінити рівень реєстратора, використовуючи Бін розширень управління Java (JMX Bean), що входить до бібліотеки:

  1. Увімкніть порт JMX у запуску програми:

    -Dcom.sun.management.jmxremote.port = [port_num]

  2. Використовуйте будь-який з доступних клієнтів JMX (JVM надає один у JAVA_HOME / bin / jconsole.exe) під час виконання програми.

  3. У JConsole шукайте компонент "org.apache.logging.log4j2

  4. Змініть рівень свого реєстратора

Мені найбільше подобається те, що вам не потрібно змінювати свій код або конфігурацію для керування цим. Це все зовнішнє і прозоре.

Більше інформації: http://logging.apache.org/log4j/2.x/manual/jmx.html