Package org.pipservices3.components.log
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 Summary
Fields Modifier and Type Field Description protected List<LogMessage>
_cache
protected long
_interval
protected long
_lastDumpTime
protected Object
_lock
protected boolean
_updated
-
Constructor Summary
Constructors Constructor Description CachedLogger()
-
Method Summary
Modifier and Type Method Description void
clear()
Clears (removes) all cached log messages.void
configure(org.pipservices3.commons.config.ConfigParams config)
Configures component by passing configuration parameters.void
dump()
Dumps (writes) the currently cached log messages.protected abstract void
save(List<LogMessage> messages)
Saves log messages from the cache.protected void
update()
Makes message cache as updated and dumps it when timeout expires.protected void
write(LogLevel level, String correlationId, Exception ex, String message)
Writes a log message to the logger destination.
-
Field Details
-
_cache
-
_updated
protected boolean _updated -
_lastDumpTime
protected long _lastDumpTime -
_interval
protected long _interval -
_lock
-
-
Constructor Details
-
CachedLogger
public CachedLogger()
-
-
Method Details
-
write
Writes a log message to the logger destination. -
save
protected abstract void save(List<LogMessage> messages) throws org.pipservices3.commons.errors.InvocationExceptionSaves 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. -
clear
public void clear()Clears (removes) all cached log messages. -
dump
public void dump() throws org.pipservices3.commons.errors.InvocationExceptionDumps (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()
-