Class WorkingMemoryFileLogger

  • All Implemented Interfaces:
    EventListener, org.kie.api.event.kiebase.KieBaseEventListener, org.kie.api.event.process.ProcessEventListener, org.kie.api.event.rule.AgendaEventListener, org.kie.api.event.rule.RuleRuntimeEventListener, org.kie.api.logger.KieRuntimeLogger
    Direct Known Subclasses:
    ThreadedWorkingMemoryFileLogger

    public class WorkingMemoryFileLogger
    extends WorkingMemoryLogger
    implements org.kie.api.logger.KieRuntimeLogger
    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 Detail

      • 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:
        Constant Field Values
      • terminate

        protected boolean terminate
    • Constructor Detail

      • WorkingMemoryFileLogger

        public WorkingMemoryFileLogger()
      • WorkingMemoryFileLogger

        public WorkingMemoryFileLogger​(WorkingMemory workingMemory)
        Creates a new WorkingMemoryFileLogger for the given working memory.
      • WorkingMemoryFileLogger

        public WorkingMemoryFileLogger​(org.kie.api.event.KieRuntimeEventManager session)
    • Method Detail

      • setFileName

        public void setFileName​(String fileName)
        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

        public void logEventCreated​(LogEvent logEvent)
        Description copied from class: WorkingMemoryLogger
        This 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:
        logEventCreated in class WorkingMemoryLogger
      • setSplit

        public void setSplit​(boolean split)
      • stop

        public void stop()
      • close

        public void close()
        Specified by:
        close in interface org.kie.api.logger.KieRuntimeLogger