JavaFX, как и все Java SE, не использует Log4J, но вместо этого использует систему ведения журнала Java . Конфигурация Log4J не повлияет на ведение журнала JavaFX.
Вы можете использовать LogManager.getLogManager (). updateConfiguration , чтобы прочитать файл свойств с переопределяющей конфигурацией ведения журнала:
try (InputStream loggingProperties =
MyApplication.class.getResource("logging.properties")) {
LogManager.getLogManager().updateConfiguration(loggingProperties);
}
(Обратите внимание, что readConfiguration заменяет всю конфигурацию ведения журнала, тогда как updateConfiguration вносит изменения в ваши настройки.)
Если вы просто хотите изменить ведение журнала для JavaFX, вы можете сделать что-то вроде этого:
private static final Logger javafxLogger = Logger.getLogger("javafx");
static {
javafxLogger.setLevel(Level.FINEST);
}
Регистратор должен быть сохранен в поле, иначе он будет собираться мусором (быстро), а настройки будут потеряны.
Независимо от того, какой из вышеперечисленных подходов вы используете, установка уровня Logger недостаточна. Обработчики также имеют свои собственные уровни, и они по умолчанию имеют значение Level.INFO.
Самый простой способ решить эту проблему - установить все уровни обработчиков:
for (Handler handler : Logger.getLogger("").getHandlers()) {
handler.setLevel(Level.ALL);
}