第 84 章 决策引擎事件监听程序和调试日志
在 Red Hat Process Automation Manager 中,您可以为决策引擎事件添加或删除监听程序,如事实插入和规则执行。借助决策引擎事件监听程序,您可以通知决策引擎活动,并将日志记录和审核与应用程序的核心工作分开。
决策引擎支持以下默认事件监听程序,用于电缆和工作内存:
-
AgendaEventListener -
WorkingMemoryEventListener
对于每个事件监听程序,决策引擎还支持指定以下可监控的特定事件:
-
MatchCreatedEvent -
MatchCancelledEvent -
BeforeMatchFiredEvent -
AfterMatchFiredEvent -
AgendaGroupPushedEvent -
AgendaGroupPoppedEvent -
ObjectInsertEvent -
ObjectDeletedEvent -
ObjectUpdatedEvent -
ProcessCompletedEvent -
ProcessNodeLeftEvent -
ProcessNodeTriggeredEvent -
ProcessStartEvent
例如,以下代码使用附加到 KIE 会话的 DefaultAgendaEventListener 侦听器,并指定要监控的 AfterMatchFiredEvent 事件。执行规则后代码打印模式匹配(fired):
监控和打印电话中的 AfterMatchFiredEvent 事件的代码示例
ksession.addEventListener( new DefaultAgendaEventListener() {
public void afterMatchFired(AfterMatchFiredEvent event) {
super.afterMatchFired( event );
System.out.println( event );
}
});
决策引擎还支持以下电缆和工作内存事件监听程序进行调试日志:
-
DebugAgendaEventListener -
DebugRuleRuntimeEventListener
这些事件监听程序实现相同的支持的 event-listener 方法,并默认包含一个 debug print 语句。您可以添加特定支持的事件来监控并记录,或监控所有销售或工作内存活动。
例如,以下代码使用 DebugRuleRuntimeEventListener 事件监听程序来监控和打印所有工作内存事件:
监控和打印所有工作内存事件的代码示例
ksession.addEventListener( new DebugRuleRuntimeEventListener() );
84.1. 在决策引擎中配置日志记录工具 复制链接链接已复制到粘贴板!
决策引擎使用 Java 日志记录 API SLF4J 进行系统日志。您可以在决策引擎中使用以下日志实用程序之一来调查决策引擎活动,如进行故障排除或数据收集:
- Logback
- Apache Commons Logging
- Apache Log4j
-
java.util.logging软件包
�程
对于您要使用的日志记录工具,将相关依赖项添加到 Maven 项目,或者在 Red Hat Process Automation Manager 发行版本的 org.drools 软件包中保存相关的 XML 配置文件:
Logback 的 Maven 依赖项示例
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
org.drools 软件包中的 logback.xml 配置文件示例
<configuration>
<logger name="org.drools" level="debug"/>
...
<configuration>
org.drools 软件包中的 log4j.xml 配置文件示例
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<category name="org.drools">
<priority value="debug" />
</category>
...
</log4j:configuration>
如果您要为巨型环境开发,请使用 slf4j-nop 或 slf4j-simple logger。