2017-01-22 10 views
1

log4jを使用し、スパムを実際に使用するサードパーティのjarファイルを使用しています(eclipseクラッシュを起こします)。log4jが決して存在しないかのようにすべてのログを消去する方法はありますか?プログラマチックに、またはプロジェクトの設定によって何かがあればそれは大丈夫です。log4jを正常にシャットダウンする

私は

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

を試してみました。しかし、私のセットアップでコンパイルdoesntの:

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

ok、どうすればloggerContextと設定を取得できますか?または実行中のすべてのloggerContext(s)のリストと設定( –

+0

)を修正して解決します。 – ZNix

+0

上記の例のようにコンパイルしません。私はlog4j 2.1を使用しています。以前のバージョンで試してみるべきですか? –

関連する問題