У меня довольно простая конфигурация logging.properties
:
handlers = java.util.logging.ConsoleHandler
.level = INFO
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=[%1$tF %1$tT] [%4$s] %5$s %n
Если для .level
установлено значение INFO, я получил все свои сообщения INFO и более поздние сообщения, как и ожидалось. Но если я установлю .level
в FINE, FINER, FINEST или ALL. Ни одно из сообщений из моего кода не отображается (ни ПРЕДУПРЕЖДЕНИЕ, ни СЕРЬЕЗНОЕ). Все "внутренние" FINE, FINER et c. сообщения отображаются корректно, но не из моего кода.
Я попытался добавить определенный уровень c для своих пакетов:
org.example.mypackage.level = INFO
, но это никак не отразилось на проблеме. Как только глобальный .level
установлен на FINE или ниже или ALL, ни одно из сообщений, созданных моим кодом, не отображается независимо от их уровня.
Что здесь не так? Есть ли такое правило (я ничего не нашел в Интернете).
Я запускаю свои тесты, используя maven:
mvn test -Djava.util.logging.config.file=/path/to/my/logging.properties
И мой код, который создает сообщения журнала, выглядит следующим образом:
public class MyClass {
private static final logger = Logger.getLogger(MyClass.class.getName());
public void someMethod() {
logger.log(Level.WARNING, "Warning message");
}
}
ОБНОВЛЕНИЕ: Это должно быть связано с maven. Как только приложение скомпилировано и запущено само по себе (чисто java SE - без сервера приложений, без контейнеров), проблема больше не является проблемой. Только при запуске с использованием mvn ...
ведение журнала ведет себя так, как описано выше.