1 |
|
2 | import { ColorFunction, Colors } from './colors';
|
3 | import { WordWrapOptions } from './format';
|
4 | export interface LogRecord {
|
5 | msg: string;
|
6 | logger: Logger;
|
7 | level?: LoggerLevelWeight;
|
8 | format?: boolean;
|
9 | }
|
10 | export declare type LoggerLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
|
11 | export declare type LoggerLevelWeight = number;
|
12 | export declare type LoggerFormatter = (record: LogRecord) => string;
|
13 | export declare const LOGGER_LEVELS: {
|
14 | readonly [L in LoggerLevel]: LoggerLevelWeight;
|
15 | };
|
16 | export declare const LOGGER_LEVEL_NAMES: ReadonlyMap<LoggerLevelWeight, LoggerLevel>;
|
17 | export declare function getLoggerLevelName(level?: LoggerLevelWeight): LoggerLevel | undefined;
|
18 | export declare function getLoggerLevelColor(colors: Colors, level?: LoggerLevelWeight): ColorFunction | undefined;
|
19 | export interface LoggerHandler {
|
20 | formatter?: LoggerFormatter;
|
21 | clone(): LoggerHandler;
|
22 | handle(record: LogRecord): void;
|
23 | }
|
24 | export interface StreamHandlerOptions {
|
25 | readonly stream: NodeJS.WritableStream;
|
26 | readonly filter?: (record: LogRecord) => boolean;
|
27 | readonly formatter?: LoggerFormatter;
|
28 | }
|
29 | export declare class StreamHandler implements LoggerHandler {
|
30 | readonly stream: NodeJS.WritableStream;
|
31 | readonly filter?: (record: LogRecord) => boolean;
|
32 | formatter?: LoggerFormatter;
|
33 | constructor({ stream, filter, formatter }: StreamHandlerOptions);
|
34 | clone(opts?: Partial<StreamHandlerOptions>): StreamHandler;
|
35 | handle(record: LogRecord): void;
|
36 | }
|
37 | export declare const DEFAULT_LOGGER_HANDLERS: ReadonlySet<StreamHandler>;
|
38 | export interface LoggerOptions {
|
39 | readonly handlers?: Set<LoggerHandler>;
|
40 | readonly level?: LoggerLevelWeight;
|
41 | }
|
42 | export declare class Logger {
|
43 | handlers: Set<LoggerHandler>;
|
44 | level: LoggerLevelWeight;
|
45 | constructor({ level, handlers }?: LoggerOptions);
|
46 | static cloneHandlers(handlers: ReadonlySet<LoggerHandler>): Set<LoggerHandler>;
|
47 | /**
|
48 | * Clone this logger, optionally overriding logger options.
|
49 | *
|
50 | * @param opts Logger options to override from this logger.
|
51 | */
|
52 | clone(opts?: Partial<LoggerOptions>): Logger;
|
53 | /**
|
54 | * Log a message as-is.
|
55 | *
|
56 | * @param msg The string to log.
|
57 | */
|
58 | msg(msg: string): void;
|
59 | /**
|
60 | * Log a message using the `debug` logger level.
|
61 | *
|
62 | * @param msg The string to log.
|
63 | */
|
64 | debug(msg: string): void;
|
65 | /**
|
66 | * Log a message using the `info` logger level.
|
67 | *
|
68 | * @param msg The string to log.
|
69 | */
|
70 | info(msg: string): void;
|
71 | /**
|
72 | * Log a message using the `warn` logger level.
|
73 | *
|
74 | * @param msg The string to log.
|
75 | */
|
76 | warn(msg: string): void;
|
77 | /**
|
78 | * Log a message using the `error` logger level.
|
79 | *
|
80 | * @param msg The string to log.
|
81 | */
|
82 | error(msg: string): void;
|
83 | createRecord(msg: string, level?: LoggerLevelWeight, format?: boolean): LogRecord;
|
84 | /**
|
85 | * Log newlines using a logger output found via `level`.
|
86 | *
|
87 | * @param num The number of newlines to log.
|
88 | * @param level The logger level. If omitted, the default output is used.
|
89 | */
|
90 | nl(num?: number, level?: LoggerLevelWeight): void;
|
91 | /**
|
92 | * Log a record using a logger output found via `level`.
|
93 | */
|
94 | log(record: LogRecord): void;
|
95 | createWriteStream(level?: LoggerLevelWeight, format?: boolean): NodeJS.WritableStream;
|
96 | }
|
97 | export interface CreateTaggedFormatterOptions {
|
98 | prefix?: string | (() => string);
|
99 | titleize?: boolean;
|
100 | wrap?: boolean | WordWrapOptions;
|
101 | colors?: Colors;
|
102 | }
|
103 | export declare function createTaggedFormatter({ colors, prefix, titleize, wrap }?: CreateTaggedFormatterOptions): LoggerFormatter;
|
104 | export declare function createPrefixedFormatter(prefix: string | (() => string)): LoggerFormatter;
|
105 |
|
\ | No newline at end of file |