Java logger не устанавливается уровень логов

197
23 августа 2017, 16:01

Добрый день. Создаю логгер:

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");

в логи попадет только тот, который с уровнем инфо, что прямо противоречит тому что написано в документации. В чем проблема?

Answer 1

По умолчанию используется 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);
READ ALSO
Как лучше работать с facebook api?

Как лучше работать с facebook api?

У меня есть веб сервис в котором я хочу аутентифицировать пользователей и получать доступ к их рекламным аккаунтам (для создания рекламы...

234
Помогите, нет звуков майнкрафт

Помогите, нет звуков майнкрафт

Вот хочу сделать лаунчер вот параметры запуска

516
Работа с массивами Java

Работа с массивами Java

Есть несколько объектов, у каждого по 4 переменных, для которых созданы геттеры и сеттерыЗначение этих переменных пользователь вводит с клавиатуры

313
Способ открыть файл json

Способ открыть файл json

В папке resources проекта у меня лежит папка langВ ней файл ru_RU

276