Решение на самом деле не имеет ничего общего с Guice, а скорее основано на том, как классы журналирования работают в Java.
Регистраторы создаются в иерархии, таким образом, регистратор x.y.z
является дочерним по отношению к x.y
, вплоть до корневого регистратора, имя которого - пустая строка . Каждый регистратор наследует свойства, как и уровень ведения журнала, от своего родителя.
Таким образом, чтобы установить глобальный уровень журнала (или глобально установить обработчики), просто установите их в корневом логгере:
LogManager logManager = LogManager.getLogManager();
Logger rootLogger = logManager.getLogger("");
rootLogger.setLevel(Level.FINEST);
rootLogger.addHandler(new ConsoleHandler());
Как только это будет сделано, любые внедренные регистраторы получат свои свойства из корневого регистратора и любых родительских регистраторов, которые могут существовать. Для получения дополнительной информации об основах см. Документацию LogManager .
A config
свойство также существует. Согласно документации LogManager:
Свойство "config". Это свойство
предназначен для разрешения произвольного
код конфигурации для запуска.
свойство определяет пробел или запятую
разделенный список имен классов. Новый
экземпляр будет создан для каждого
названный класс. Конструктор по умолчанию
каждого класса может выполняться произвольно
код для обновления журнала
конфигурация, такая как настройка логгера
уровни, добавление обработчиков, добавление
фильтры и пр.
Это означает, что существует несколько решений проблемы, поскольку я мог бы также использовать класс конфигурации.