Class CachedLogger

java.lang.Object
org.pipservices3.components.log.Logger
org.pipservices3.components.log.CachedLogger
All Implemented Interfaces:
org.pipservices3.commons.config.IConfigurable, org.pipservices3.commons.config.IReconfigurable, org.pipservices3.commons.refer.IReferenceable, ILogger

public abstract class CachedLogger
extends Logger
implements org.pipservices3.commons.config.IReconfigurable
Abstract logger that caches captured log messages in memory and periodically dumps them. Child classes implement saving cached messages to their specified destinations.

### Configuration parameters ###

  • level: maximum log level to capture
  • source: source (context) name
  • options:
    • interval: interval in milliseconds to save log messages (default: 10 seconds)
    • max_cache_size: maximum number of messages stored in this cache (default: 100)

### References ###

  • *:context-info:*:*:1.0 (optional) ContextInfo to detect the context id and specify counters source
See Also:
ILogger, Logger, LogMessage
  • Field Details

    • _cache

      protected List<LogMessage> _cache
    • _updated

      protected boolean _updated
    • _lastDumpTime

      protected long _lastDumpTime
    • _interval

      protected long _interval
    • _lock

      protected Object _lock
  • Constructor Details

    • CachedLogger

      public CachedLogger()
  • Method Details

    • write

      protected void write​(LogLevel level, String correlationId, Exception ex, String message)
      Writes a log message to the logger destination.
      Specified by:
      write in class Logger
      Parameters:
      level - a log level.
      correlationId - (optional) transaction id to trace execution through call chain.
      ex - an error object associated with this message.
      message - a human-readable message to log.
    • save

      protected abstract void save​(List<LogMessage> messages) throws org.pipservices3.commons.errors.InvocationException
      Saves log messages from the cache.
      Parameters:
      messages - a list with log messages
      Throws:
      org.pipservices3.commons.errors.InvocationException - when error occured.
    • configure

      public void configure​(org.pipservices3.commons.config.ConfigParams config)
      Configures component by passing configuration parameters.
      Specified by:
      configure in interface org.pipservices3.commons.config.IConfigurable
      Overrides:
      configure in class Logger
      Parameters:
      config - configuration parameters to be set.
    • clear

      public void clear()
      Clears (removes) all cached log messages.
    • dump

      public void dump() throws org.pipservices3.commons.errors.InvocationException
      Dumps (writes) the currently cached log messages.
      Throws:
      org.pipservices3.commons.errors.InvocationException - when error occured.
      See Also:
      write(LogLevel, String, Exception, String)
    • update

      protected void update()
      Makes message cache as updated and dumps it when timeout expires.
      See Also:
      dump()