Добрый день. Создаю логгер:
public static Logger log = Logger.getLogger(GameField.class.getName());
Ставлю ему:
log.setLevel(Level.ALL);
В документации написано:
setLevel(Level newLevel)
Set the log level specifying which message levels will be logged by this logger.
Но если создать два лога - один с уровнем конфиг, а другой с уровнем инфо:
log.info("info log");
log.config("config log");
в логи попадет только тот, который с уровнем инфо, что прямо противоречит тому что написано в документации. В чем проблема?
По умолчанию используется ConsoleHandler и у него установлен уровень Level.INFO.
Вы можете это исправить:
создав и подключив (-Djava.util.logging.config.file=<имя файла>) свой файл logging.properties
java.util.logging.ConsoleHandler.level = FINEST
handlers = java.util.logging.ConsoleHandler
поменять системный файл logging.properties
поменять уровень ConsoleHandler, который используется по умолчанию
log.getParent().getHandlers()[0].setLevel(Level.ALL);
добавить свой ConsoleHandler
// выключаем настройки по умолчанию иначе сообщения будут дублироваться
LogManager.getLogManager().reset();
ConsoleHandler handler = new ConsoleHandler();
handler.setFormatter(new SimpleFormatter());
handler.setLevel(Level.ALL);
log.addHandler(handler);
log.setLevel(Level.ALL);
Продвижение своими сайтами как стратегия роста и независимости