I found that the IBM iLog.NET documentation had the answer buried deep, deep within. Persistent Google searching revealed that I can set ILOG.Rules.ExecutionServer.Trace.EventFilterCategories
on my ExecutionRequest
object before I send it to the server.
ExecutionRequest request = new ExecutionRequest(rulePath);
request.TraceFilter.EventFilters
= ILOG.Rules.ExecutionServer.Trace.EventFilterCategories.All;
...
ExecutionResponse response = session.Execute(request);
ILOG.Rules.ExecutionServer.Trace.Trace trace = response.Trace;
Debug.WriteLine(trace.SerializedExecutionTrace);
The serialized trace contains all the inputs and outputs for the call as well as all rules that were triggered during execution and the rules that weren't hit at all.