CachedLogger

Logger that caches captured log messages in memory and periodically dumps them.

Extends: 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

_cache

List containing log messages.

protected _cache: LogMessage[] = []

_updated

Boolean variable indicating whether there has been an update or not.

protected _updated = false

_interval

Interval in milliseconds to save log messages (default: 10 seconds)

protected _interval = 10000

_lastDumpTime

Time of the last dump

protected _lastDumpTime: number

_maxCacheSize

Maximum number of messages stored in the cache (default: 100)

protected _maxCacheSize: number = 100

Instance methods

clear

Clears (removes) all cached log messages.

clear(): void

configure

Configures component by passing configuration parameters.

public configure(config: ConfigParams): void

  • config: ConfigParams - configuration parameters to be set.

dump

Dumps (writes) the currently cached log messages.

public dump(): void

update

Sets message cache as updated and dumps it when timeout expires.

protected update()

write

Writes a log message to the logger destination.

protected write(level: LogLevel, context: IContext, error: Error, message: string): void

  • level: LogLevel - a log level.
  • context: IContext - (optional) a context to trace execution through call chain.
  • error: Error - an error object associated with this message.
  • message: string - a human-readable message to log.

Abstract methods

save

Saves log messages from the cache.

protected abstract save(messages: LogMessage[])

  • messages: LogMessage[] - a list with log messages

See also