此内容没有您所选择的语言版本。
Chapter 87. Decision engine event listeners and debug logging
In Red Hat Process Automation Manager, you can add or remove listeners for decision engine events, such as fact insertions and rule executions. With decision engine event listeners, you can be notified of decision engine activity and separate your logging and auditing work from the core of your application.
The decision engine supports the following default event listeners for the agenda and working memory:
-
AgendaEventListener
-
WorkingMemoryEventListener
For each event listener, the decision engine also supports the following specific events that you can specify to be monitored:
-
MatchCreatedEvent
-
MatchCancelledEvent
-
BeforeMatchFiredEvent
-
AfterMatchFiredEvent
-
AgendaGroupPushedEvent
-
AgendaGroupPoppedEvent
-
ObjectInsertEvent
-
ObjectDeletedEvent
-
ObjectUpdatedEvent
-
ProcessCompletedEvent
-
ProcessNodeLeftEvent
-
ProcessNodeTriggeredEvent
-
ProcessStartEvent
For example, the following code uses a DefaultAgendaEventListener
listener attached to a KIE session and specifies the AfterMatchFiredEvent
event to be monitored. The code prints pattern matches after the rules are executed (fired):
Example code to monitor and print AfterMatchFiredEvent
events in the agenda
ksession.addEventListener( new DefaultAgendaEventListener() { public void afterMatchFired(AfterMatchFiredEvent event) { super.afterMatchFired( event ); System.out.println( event ); } });
The decision engine also supports the following agenda and working memory event listeners for debug logging:
-
DebugAgendaEventListener
-
DebugRuleRuntimeEventListener
These event listeners implement the same supported event-listener methods and include a debug print statement by default. You can add a specific supported event to be monitored and documented, or monitor all agenda or working memory activity.
For example, the following code uses the DebugRuleRuntimeEventListener
event listener to monitor and print all working memory events:
Example code to monitor and print all working memory events
ksession.addEventListener( new DebugRuleRuntimeEventListener() );
87.1. Configuring a logging utility in the decision engine
The decision engine uses the Java logging API SLF4J for system logging. You can use one of the following logging utilities with the decision engine to investigate decision engine activity, such as for troubleshooting or data gathering:
- Logback
- Apache Commons Logging
- Apache Log4j
-
java.util.logging
package
Procedure
For the logging utility that you want to use, add the relevant dependency to your Maven project or save the relevant XML configuration file in the org.drools
package of your Red Hat Process Automation Manager distribution:
Example Maven dependency for Logback
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency>
Example logback.xml configuration file in org.drools package
<configuration> <logger name="org.drools" level="debug"/> ... <configuration>
Example log4j.xml configuration file in org.drools package
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <category name="org.drools"> <priority value="debug" /> </category> ... </log4j:configuration>
If you are developing for an ultra light environment, use the slf4j-nop
or slf4j-simple
logger.