Microsoft Business Rules Engine (MS-BRE) - XmlTrackingInterceptor
One of them is implementing an interface called the IRuleSetTrackingInterceptor. Implementing this interface consists of writing code for the following methods, then called by the BRE as it's executing a RuleSet:
Sets the rule set tracking GUID and tracking configuration.
Tracks updates to the rule engine agenda.
Tracks the evaluation of rule conditions.
Tracks changes to working memory.
Tracks the firing of a rule.
Tracks the association of a rule set with a rule engine instance.
Policy executingPolicy = new Policy("My Policy", 1, 4);
executingPolicy.Execute((object) facts.ToArray(typeof(object)), interceptor);
After the BRE is done executing the specified Policy, the interceptor class has been called for each task and might contain valueable information as to the execution of the Policy.
The BRE supplies a standard implementation of IRuleSetTrackingInterceptor, called the DebugTrackingInterceptor. This interceptor is also used if you have any "Call Rules" shapes within your Orchestrations. It's the way for the HAT to enable viewing what went on within the business process, BRE wise.
The DebugTrackingInterceptor, however, uses a plain text file format, which can be cumbersome to parse using tools. I've implemented a Xml version, which can be downloaded here. Using it you can track the same information as the DebugTrackingInterceptor does, but in a Xml format.