Возможно ли указать форматировщик java.util.log с помощью a -D опции или каким-либо способом, который не требует изменения кода?

#java #java.util.logging

#java #java.util.logging

Вопрос:

У меня есть программа Java, которая использует ведение журнала XML по умолчанию, поскольку форматировщик не определен, мне интересно, есть ли способ изменить это вне модификации кода или добавления файла logging.properties (у него нет atm). Есть ли способ указать / изменить обработчик файла по умолчанию с XML на SimpleFormatter для Java.util.log? Конфигурация ведения журнала была жестко запрограммирована:

 fh = new FileHandler("/path/to/logfile",true);
logger.addHandler(fh);
  

Вместо того, чтобы добавлять fh.setFormatter(new SimpleFormatter()) в приведенный здесь код, мне интересно, могу ли я каким-либо образом через командную строку указать SimpleFormatter для использования в качестве форматировщика по умолчанию, а не форматировщика XML, который используется по умолчанию?

Спасибо за любые мысли

Ответ №1:

Вы можете указать, как должно выполняться ведение журнала несколькими способами, и все они описаны в javadoc для LogManager.

Вы можете установить системное свойство java.util.logging.config.file и использовать файл для настройки, или вы можете установить java.util.logging.config.class и использовать класс для настройки ведения журнала.

logging.properties Файл в JRE/lib каталоге будет использоваться, если ни одно из этих свойств не задано (если в коде не указана другая конфигурация ведения журнала)

Ответ №2:

Похоже, вы можете установить системное свойство java.util.logging.FileHandler.formatter в соответствии с Java Doc.