第 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-nopslf4j-simple logger。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部