LOG4J2: Отключить "Нет файла конфигурации log4j2 найдено.." при программировании
Я не использую какой-либо файл конфигурации XML, скорее я настраиваю конфигурацию регистратора программно. Регистратор работает правильно, но когда я вызываю первую строку кода ниже, появляется сообщение об ERROR
, чтобы сообщить мне, что файл конфигурации не найден, и будет использоваться конфигурация по умолчанию.
Но я не хочу, чтобы это сообщение отображалось на консоли каждый раз, когда я запускал программу, потому что я программно добавляю конфигурацию самостоятельно.
Сообщение:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
Это происходит, когда я вызываю код ниже:
LoggerContext context = (LoggerContext) LogManager.getContext(false);
Или если я сначала запустил корневой журнал:
Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);
Есть ли какое-то свойство, которое я могу настроить для отключения этого сообщения от отображения? Или другой подход?
ПРИМЕЧАНИЕ. Я отключил другое уведомление относительно Log4j2 JMX, установив свойство -Dlog4j2.disable.jmx=true
.Но я не мог найти этого.
Ответы
Ответ 1
Добавьте следующее системное свойство, чтобы не показывать это сообщение:
-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=OFF
Альтернативно, и проще:
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.status.StatusLogger;
...
StatusLogger.getLogger().setLevel(Level.OFF);
Ответ 2
Вы можете просто сделать это в своем основном классе.
static {
StatusLogger.getLogger().setLevel(Level.OFF);
}
Ответ 3
Вы должны реализовать метод инициализации для правильной инициализации конфигураций log4j из кода.
Проверьте раздел "Как настроить log4j2 в коде без файла конфигурации" на странице ниже, которая также содержит исходный код.
http://logging.apache.org/log4j/2.x/faq.html