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 有几个 LogLevel(即 WARN、INFO、ERROR),但我找不到指定日志记录粒度的方法。我对警告和错误非常感兴趣,但我想在信息级别抑制(大量)输出。

4

1 回答 1

2

到目前为止,我发现可以抑制 OPAL 的控制台输出。OPAL 日志记录机制使用多个LogContext对象。它存在一个GlobalLogContext和一个LogContext每个可用Project的。由于两者都是独立的,因此有必要使这两种类型都静音。

第一个上下文用于在特定项目的上下文中未发生的每个日志记录事件,而特定于项目的上下文用于在给定上下文中记录消息。

OPALLogger.update(...)方法可用于更新用于 LogContext 的 Logger。使用此方法,可以将新 Logger 与 LogContext 相关联。如果您使用命令行运行 OPAL,ConsoleOPALLogger则可以按如下方式使用 a。

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 回答