При первом вызове вашего приложения в log4j2 код log4j будет настраиваться до того, как метод вернется. Если файл конфигурации не найден, log4j будет автоматически настраиваться с настройкой по умолчанию, которая регистрирует только ошибки на консоли. Поэтому с точки зрения вашего приложения никогда не бывает времени, когда log4j не настроен.
Одна идея состоит в том, чтобы проверить, если log4j2.xml файл находится в пути к классам (с использованием Class.getResource), и если это не называют System.setProperty("log4j.configurationFile", pathToYourConfig)
. Обратите внимание, что это должно быть выполнено до перед первым вызовом API log4j2.
Альтернатива:
После того, как у вас есть LoggerContext вы можете позвонить context.setConfigLocation(configLocation)
где configLocation является URI. Это заставит реконфигурировать.
Итак, как я могу выполнить то, что хочу, а именно инициализировать с моим конфигурационным файлом, когда никто не был предоставлен? – bananasplit
Я добавил предложение. –
«это должно быть сделано до первого вызова API log4j2». это слишком ограничительно. – bananasplit