Будь ласка, виправте мене, якщо я помиляюся, але здається, що цеlog4j2.xml повинен знаходитись у класі шляху програми, і все на classpath упаковується у файл .jar, коли ви створюєте окремий .jar файл програми, який можна запустити.
Якщо це так, то XML-файл бути не можезмінено після експорту програми у файл .jar. Таким чином, не здається, що існує спосіб змінити рівень реєстрації без повторного експорту програми.
Скажіть, будь ласка, я не в цьому і томує спосіб, що я можу змінити рівень реєстрації під час роботи програми, використовуючи, скажімо, випадаючий список JFrame, щоб користувач міг вибрати рівень реєстрації.
Відповіді:
0 для відповіді № 1Я раніше це використовував
LogManager.getRootLogger().setLevel(Level.DEBUG);
Ви можете змінити будь-який з рівнів журналу таким чином.
0 для відповіді № 2
Ви можете змінити рівень реєстратора, використовуючи Бін розширень управління Java (JMX Bean), що входить до бібліотеки:
Увімкніть порт JMX у запуску програми:
-Dcom.sun.management.jmxremote.port = [port_num]
Використовуйте будь-який з доступних клієнтів JMX (JVM надає один у JAVA_HOME / bin / jconsole.exe) під час виконання програми.
У JConsole шукайте компонент "org.apache.logging.log4j2
Змініть рівень свого реєстратора
Мені найбільше подобається те, що вам не потрібно змінювати свій код або конфігурацію для керування цим. Це все зовнішнє і прозоре.
Більше інформації: http://logging.apache.org/log4j/2.x/manual/jmx.html