pip-services3-components-node
Version:
Component definitions for Pip.Services in Node.js
76 lines (75 loc) • 2.55 kB
TypeScript
/** @module log */
import { ConfigParams } from 'pip-services3-commons-node';
import { LogLevel } from './LogLevel';
import { Logger } from './Logger';
import { LogMessage } from './LogMessage';
/**
* 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 ###
*
* - <code>\*:context-info:\*:\*:1.0</code> (optional) [[ContextInfo]] to detect the context id and specify counters source
*
* @see [[ILogger]]
* @see [[Logger]]
* @see [[LogMessage]]
*/
export declare abstract class CachedLogger extends Logger {
protected _cache: LogMessage[];
protected _updated: boolean;
protected _lastDumpTime: number;
protected _maxCacheSize: number;
protected _interval: number;
/**
* Creates a new instance of the logger.
*/
constructor();
/**
* Writes a log message to the logger destination.
*
* @param level a log level.
* @param correlationId (optional) transaction id to trace execution through call chain.
* @param error an error object associated with this message.
* @param message a human-readable message to log.
*/
protected write(level: LogLevel, correlationId: string, error: Error, message: string): void;
/**
* Saves log messages from the cache.
*
* @param messages a list with log messages
* @param callback callback function that receives error or null for success.
*/
protected abstract save(messages: LogMessage[], callback: (err: any) => void): void;
/**
* Configures component by passing configuration parameters.
*
* @param config configuration parameters to be set.
*/
configure(config: ConfigParams): void;
/**
* Clears (removes) all cached log messages.
*/
clear(): void;
/**
* Dumps (writes) the currently cached log messages.
*
* @see [[write]]
*/
dump(): void;
/**
* Makes message cache as updated
* and dumps it when timeout expires.
*
* @see [[dump]]
*/
protected update(): void;
}