2016-06-27 5 views
0

私は静的解析を実装するためにOPALフレームワークを使用しています。私は、実行中にコンソールに表示されるフレームワークのコンソール出力を抑止することが可能かどうか疑問に思った。以下は、出力の一部を示しています。OPALプロジェクトのコンソール出力を無効にしますか?

... 
[info][OPAL] Bytecod Representation - Development Build (asserstions are enables) 
[info][project configuration] the JDK is part of the analysis 
[warn][project configuration] supertype information incomplete 
... 

私はOPALは、いくつかのloglevelの(すなわちWARN、INFO、ERROR)を持っていますが、私は、ロギング粒度を指定する方法を見つけることができなかったことがわかりました。私は本当に警告とエラーに興味がありますが、(大量の)出力を情報レベルで抑制したいと思います。

答えて

2

これまでのところ、OPALのコンソール出力を抑制することができました。 OPALロギングメカニズムは、いくつかのオブジェクトを使用します(LogContext)。 1つはGlobalLogContextであり、1つはProjectであり、1つはLogContextです。両方とも独立しているので、両方のタイプを消す必要があります。

最初のコンテキストは、特定のプロジェクトのコンテキストでは発生しないすべてのログイベントに対して使用されますが、プロジェクト固有のコンテキストは特定のコンテキストでメッセージを記録するために使用されます。

OPALLogger.update(...)メソッドを使用して、LogContextに使用されるLoggerを更新できます。このメソッドを使用すると、新しいLoggerをLogContextに関連付けることができます。コマンドラインでOPALを実行している場合は、ConsoleOPALLoggerを次のように使用できます。

val project = ...  
OPALLogger.updateLogger(project.logContext, new ConsoleOPALLogger(true, org.opalj.log.Error)) 
OPALLogger.updateLogger(GlobalLogContext, new ConsoleOPALLogger(true, org.opalj.log.Error)) 
関連する問題