CachedLogger
Implements: Logger
Description
The CachedLogger class allows you to create a logger that caches captured log messages in memory and periodically dumps them.
Important points
- 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
Fields
Methods
Clear
Clears (removes) all cached log messages.
(c *CachedLogger) Clear(ctx context.Context)
- ctx: context.Context - operation context.
Configure
Configures a component by passing configuration parameters.
(c *CachedLogger) Configure(ctx context.Context, cfg *config.ConfigParams
- ctx: context.Context - operation context.
- cfg: *config.ConfigParams - configuration parameters to be set.
Dump
Dumps (writes) the currently cached log messages.
(c *CachedLogger) Dump(ctx context.Context) error
- ctx: context.Context - operation context.
- returns: error - returned error if not dumped.
Update
Sets message cache as updated and dumps it when timeout expires.
(c *CachedLogger) Update(ctx context.Context)
- ctx: context.Context - operation context.
Save
Saves log messages from the cache.
Save(messages []*LogMessage) error
- messages: []*LogMessage - list with log messages.
- returns: error - returned error if not saved.
Write
Writes a log message to the logger destination.
func (c *CachedLogger) Write(ctx context.Context, level LevelType, correlationId string, err error, message string)
- ctx: context.Context - operation context.
- level: LevelType - a log level.
- correlationId: string - (optional) transaction id to trace execution through call chain.
- ex: error - an error object associated with this message.
- message: string - a human-readable message to log.