Package org.drools.kiesession.audit
Class WorkingMemoryFileLogger
java.lang.Object
org.drools.kiesession.audit.WorkingMemoryLogger
org.drools.kiesession.audit.WorkingMemoryFileLogger
- All Implemented Interfaces:
EventListener,KieBaseEventListener,ProcessEventListener,AgendaEventListener,RuleRuntimeEventListener,KieRuntimeLogger
- Direct Known Subclasses:
ThreadedWorkingMemoryFileLogger
A logger of events generated by a working memory. It stores its information
in a file that can be specified. All the events logged are written to the
file when the writeToDisk() method is invoked. The log will contain all the
events logged serialized to XML using XStream. Every time a new logger is
created, the old event log will be overwritten.
TODO: make this class more scalable, for example - logging to several files
if log becomes too large - automatically write updates to file at certain
time intervals - ...
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intprotected static final org.slf4j.Loggerprotected boolean -
Constructor Summary
ConstructorsConstructorDescriptionWorkingMemoryFileLogger(WorkingMemory workingMemory) Creates a new WorkingMemoryFileLogger for the given working memory. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidlogEventCreated(LogEvent logEvent) This method is invoked every time a new log event is created.voidvoidsetFileName(String fileName) Sets the name of the file the events are logged in.voidsetMaxEventsInMemory(int maxEventsInMemory) Sets the maximum number of log events that are allowed in memory.voidsetSplit(boolean split) voidstop()voidvoidAll events in the log are written to file.Methods inherited from class org.drools.kiesession.audit.WorkingMemoryLogger
addFilter, afterFunctionRemoved, afterKieBaseLocked, afterKieBaseUnlocked, afterKiePackageAdded, afterKiePackageRemoved, afterMatchFired, afterNodeLeft, afterNodeTriggered, afterProcessAdded, afterProcessCompleted, afterProcessRemoved, afterProcessStarted, afterRuleAdded, afterRuleFlowGroupActivated, afterRuleFlowGroupDeactivated, afterRuleRemoved, afterVariableChanged, agendaGroupPopped, agendaGroupPushed, beforeFunctionRemoved, beforeKieBaseLocked, beforeKieBaseUnlocked, beforeKiePackageAdded, beforeKiePackageRemoved, beforeMatchFired, beforeNodeLeft, beforeNodeTriggered, beforeProcessAdded, beforeProcessCompleted, beforeProcessRemoved, beforeProcessStarted, beforeRuleAdded, beforeRuleFlowGroupActivated, beforeRuleFlowGroupDeactivated, beforeRuleRemoved, beforeVariableChanged, clearFilters, matchCancelled, matchCreated, objectDeleted, objectInserted, objectUpdated, removeFilterMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.kie.api.event.process.ProcessEventListener
afterSLAViolated, beforeSLAViolated, onError, onMessage, onMigration, onSignal
-
Field Details
-
logger
protected static final transient org.slf4j.Logger logger -
DEFAULT_MAX_EVENTS_IN_MEMORY
public static final int DEFAULT_MAX_EVENTS_IN_MEMORY- See Also:
-
terminate
protected boolean terminate
-
-
Constructor Details
-
WorkingMemoryFileLogger
public WorkingMemoryFileLogger() -
WorkingMemoryFileLogger
Creates a new WorkingMemoryFileLogger for the given working memory. -
WorkingMemoryFileLogger
-
-
Method Details
-
readExternal
- Overrides:
readExternalin classWorkingMemoryLogger- Throws:
IOExceptionClassNotFoundException
-
writeExternal
- Overrides:
writeExternalin classWorkingMemoryLogger- Throws:
IOException
-
setFileName
Sets the name of the file the events are logged in. No extensions should be given since .log is automatically appended to the file name. The default is an event.log file in the current working directory. This can be a path relative to the current working directory (e.g. "mydir/subDir/myLogFile"), or an absolute path (e.g. "C:/myLogFile").- Parameters:
fileName- The name of the file the events should be logged in.
-
writeToDisk
public void writeToDisk()All events in the log are written to file. The log is automatically cleared afterwards. -
setMaxEventsInMemory
public void setMaxEventsInMemory(int maxEventsInMemory) Sets the maximum number of log events that are allowed in memory. If this number is reached, all events are written to file. The default is 1000.- Parameters:
maxEventsInMemory- The maximum number of events in memory.
-
logEventCreated
Description copied from class:WorkingMemoryLoggerThis method is invoked every time a new log event is created. Subclasses should implement this method and store the event, like for example log to a file or database.- Specified by:
logEventCreatedin classWorkingMemoryLogger
-
setSplit
public void setSplit(boolean split) -
stop
public void stop() -
close
public void close()- Specified by:
closein interfaceKieRuntimeLogger
-