Я знаю, что ОП попросил сделать это программно, но вот пример того, как это сделать в файле свойств тоже.
Предостережение: Я думал, что это достойно включения, поскольку заголовок не указывает на программную реализацию, и многие разработчики захотят управлять им через logging.properties. Также на самом деле не очень много он-лайн об этом, он может быть запутанным и немного отличается от, скажем, log4j
Уровень корневого ведения журнала указан конфигурацией .level
. Это определяет, какие события по умолчанию должны быть захвачены и «распределены для» ведения журнала. Уровень корневого ведения журнала - это уровень, используемый «корневым регистратором» в иерархии протоколирования. См. this onjava article for more info on the logging hierarchy.
Ниже указателя уровня журнала журнала установлено значение WARNING, поэтому обычно регистрируются только события WARNING. Это наследуется всеми дочерними лесорубов в иерархии, если не настроить иначе (позже):
.level=WARNING
Этот уровень корневой каротаж указывает только то, что улавливается, а не то, что «распределено». Как распределяется захваченное событие (сообщение) до тех, кто связан с регистратором. Например, ConsoleHandler выведет событие на консоль. Например:
java.util.logging.ConsoleHandler.level = WARNING
Это ConsoleHandler.level указывает на уровень, для которого этот обработчик должен распространять - или печать - сообщение. Итак, если получено сообщение FINE с вышеуказанной конфигурацией, этот обработчик не распечатает его. Он будет печатать любые сообщения с уровнем журнала WARNING или выше.
Установка для ALL гарантирует, что ConsoleHandler будет печатать все сообщения на консоль (нам также необходимо настроить корневой уровень, чтобы обеспечить все захвачены):
.level=ALL
java.util.logging.ConsoleHandler.level = ALL
Однако, это создало бы много шума, которого мы также не хотим.Таким образом, чтобы уменьшить события FINE уровня для тех классов, мы заинтересованы в том, мы изменяем уровень протоколирования только тех конкретных лесорубов:
com.level = WARNING
com.mypackage.MyClass1.level = FINE
com.mypackage.MyClass2.level = FINE
com.mypackage.mysubpackage.MyClass3.level = FINE
Обратите внимание, что в приведенном выше, я явно задать уровень для «com» в WARNING.
В основном такой же вопрос, как http://stackoverflow.com/questions/470430/java-util-logging-logger-doesnt-respect-java-util-logging-level. –