Есть ли способ отключить java.util.logging и включить его позже? - PullRequest
0 голосов
/ 25 мая 2018

Я использую библиотеку, которая регистрирует кучу вещей, которые я не хочу регистрировать.Он использует java.util.logging.

Я также не хочу полностью отключать его журналирование, так как некоторые из его журналов полезны.Поскольку нежелательные строки регистрируются только тогда, когда я запускаю определенную задачу, если бы был глобальный способ отключения и включения ведения журнала, это решило бы мою проблему.

В идеале что-то вроде:

disableLogging();
taskThatMakesUnnecessaryLogs();
enableLogging();

1 Ответ

0 голосов
/ 26 мая 2018

Для глобального воздействия вы можете использовать LogManager.reset() в качестве вызова, чтобы отключить ведение журнала и повторно включить ведение журнала, вы можете LogManager.readConfiguration().Тем не менее, есть некоторые серьезные недостатки в том, что фактически перезагружается .Вместо этого следует использовать более новый метод JDK9 LogManager.updateConfiguration .

Если вы знаете имя регистратора, вы можете отредактировать свои logging.properties, чтобы изменить уровень этого нарушающего регистратора или создать filter .

Из кода вы можете найти регистратор и изменить его уровень на OFF или что-то выше, чем сообщения журнала, которые вы видите.

final Logger chatty = Logger.getLogger("somelogger");
final Level oldLevel = chatty.getLevel();
chatty.setLevel(Level.OFF);
try {
  taskThatMakesUnnecessaryLogs();
} finally {
  chatty.setLevel(oldLevel);
}
...