2017-01-22 7 views
1

Я использую стороннюю банку, которая использует log4j и spams действительно слишком много (делает сбой eclipse), есть ли способ стереть все записи, как если бы log4j никогда не существовал в первую очередь? программно или путем настройки проекта, все нормально, если оно stfu.Завершение log4j навсегда

я попытался

List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers()); 
loggers.add(LogManager.getRootLogger()); 
for (Logger logger : loggers) { 
    logger.setLevel(Level.OFF); 
} 

Но оленья кожа скомпилировать в моей установке:

LogManager.getCurrentLoggers() and 
LogManager.getRootLogger() do not exist. 

ответ

0

Log4j2 использует несколько контекстов. Адаптация вышеуказанного кода:

LoggerContext ctx = (LoggerContext) LogManager.getContext(); 
Configuration config = ctx.getConfiguration(); 
Collection<LoggerConfig> loggers = config.getLoggers().values(); 
for(LoggerConfig cfg: loggers) { 
    cfg.setLevel(Level.OFF); 
} 
+0

нормально, как я могу получить loggerContext и конфигурацию? или даже список всех запущенных loggerContext (s) и конфигурации (ов) –

+0

Отредактировано для решения этого вопроса. – ZNix

+0

он не компилируется, как в приведенном выше примере, im использует log4j 2.1, следует ли использовать предыдущие версии? –