UNPKG

2.55 kBTypeScriptView Raw
1/** @module log */
2import { ConfigParams } from 'pip-services3-commons-node';
3import { LogLevel } from './LogLevel';
4import { Logger } from './Logger';
5import { LogMessage } from './LogMessage';
6/**
7 * Abstract logger that caches captured log messages in memory and periodically dumps them.
8 * Child classes implement saving cached messages to their specified destinations.
9 *
10 * ### Configuration parameters ###
11 *
12 * - level: maximum log level to capture
13 * - source: source (context) name
14 * - options:
15 * - interval: interval in milliseconds to save log messages (default: 10 seconds)
16 * - max_cache_size: maximum number of messages stored in this cache (default: 100)
17 *
18 * ### References ###
19 *
20 * - <code>\*:context-info:\*:\*:1.0</code> (optional) [[ContextInfo]] to detect the context id and specify counters source
21 *
22 * @see [[ILogger]]
23 * @see [[Logger]]
24 * @see [[LogMessage]]
25 */
26export declare abstract class CachedLogger extends Logger {
27 protected _cache: LogMessage[];
28 protected _updated: boolean;
29 protected _lastDumpTime: number;
30 protected _maxCacheSize: number;
31 protected _interval: number;
32 /**
33 * Creates a new instance of the logger.
34 */
35 constructor();
36 /**
37 * Writes a log message to the logger destination.
38 *
39 * @param level a log level.
40 * @param correlationId (optional) transaction id to trace execution through call chain.
41 * @param error an error object associated with this message.
42 * @param message a human-readable message to log.
43 */
44 protected write(level: LogLevel, correlationId: string, error: Error, message: string): void;
45 /**
46 * Saves log messages from the cache.
47 *
48 * @param messages a list with log messages
49 * @param callback callback function that receives error or null for success.
50 */
51 protected abstract save(messages: LogMessage[], callback: (err: any) => void): void;
52 /**
53 * Configures component by passing configuration parameters.
54 *
55 * @param config configuration parameters to be set.
56 */
57 configure(config: ConfigParams): void;
58 /**
59 * Clears (removes) all cached log messages.
60 */
61 clear(): void;
62 /**
63 * Dumps (writes) the currently cached log messages.
64 *
65 * @see [[write]]
66 */
67 dump(): void;
68 /**
69 * Makes message cache as updated
70 * and dumps it when timeout expires.
71 *
72 * @see [[dump]]
73 */
74 protected update(): void;
75}