0

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 にはいくつかの LogLevels (つまり、WARN、INFO、ERROR) があることがわかりましたが、ログの粒度を指定する方法が見つかりませんでした。私は警告とエラーに非常に興味がありますが、(大量の) 出力を情報レベルで抑制したいと考えています。

4

1 に答える 1

2

ここまでで、OPAL のコンソール出力を抑制することが可能であることがわかりました。OPAL ロギング メカニズムは、いくつかのLogContextオブジェクトを使用します。利用可能な ごとGlobalLogContextに 1 つと1 つ存在します。どちらも独立しているため、両方のタイプを沈黙させる必要があります。LogContextProject

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

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

val project = ...    
OPALLogger.updateLogger(project.logContext, new ConsoleOPALLogger(true, org.opalj.log.Error))
OPALLogger.updateLogger(GlobalLogContext, new ConsoleOPALLogger(true, org.opalj.log.Error))
于 2016-07-04T13:07:00.927 に答える