1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | import * as NodeJSStream from 'stream';
|
7 |
|
8 | import * as logform from 'logform';
|
9 | import * as Transport from 'winston-transport';
|
10 |
|
11 | import * as Config from './lib/winston/config/index';
|
12 | import * as Transports from './lib/winston/transports/index';
|
13 |
|
14 | declare namespace winston {
|
15 |
|
16 | export import format = logform.format;
|
17 | export import Logform = logform;
|
18 | export import config = Config;
|
19 | export import transports = Transports;
|
20 | export import transport = Transport;
|
21 |
|
22 | class ExceptionHandler {
|
23 | constructor(logger: Logger);
|
24 | logger: Logger;
|
25 | handlers: Map<any, any>;
|
26 | catcher: Function | boolean;
|
27 |
|
28 | handle(...transports: Transport[]): void;
|
29 | unhandle(...transports: Transport[]): void;
|
30 | getAllInfo(err: string | Error): object;
|
31 | getProcessInfo(): object;
|
32 | getOsInfo(): object;
|
33 | getTrace(err: Error): object;
|
34 | }
|
35 |
|
36 | class RejectionHandler {
|
37 | constructor(logger: Logger);
|
38 | logger: Logger;
|
39 | handlers: Map<any, any>;
|
40 | catcher: Function | boolean;
|
41 |
|
42 | handle(...transports: Transport[]): void;
|
43 | unhandle(...transports: Transport[]): void;
|
44 | getAllInfo(err: string | Error): object;
|
45 | getProcessInfo(): object;
|
46 | getOsInfo(): object;
|
47 | getTrace(err: Error): object;
|
48 | }
|
49 |
|
50 | interface QueryOptions {
|
51 | rows?: number;
|
52 | limit?: number;
|
53 | start?: number;
|
54 | from?: Date;
|
55 | until?: Date;
|
56 | order?: 'asc' | 'desc';
|
57 | fields: any;
|
58 | }
|
59 |
|
60 | class Profiler {
|
61 | logger: Logger;
|
62 | start: Number;
|
63 | done(info?: any): boolean;
|
64 | }
|
65 |
|
66 | type LogCallback = (
|
67 | error?: any,
|
68 | level?: string,
|
69 | message?: string,
|
70 | meta?: any
|
71 | ) => void;
|
72 |
|
73 | interface LogEntry {
|
74 | level: string;
|
75 | message: string;
|
76 | [optionName: string]: any;
|
77 | }
|
78 |
|
79 | interface LogMethod {
|
80 | (level: string, message: string, callback: LogCallback): Logger;
|
81 | (level: string, message: string, meta: any, callback: LogCallback): Logger;
|
82 | (level: string, message: string, ...meta: any[]): Logger;
|
83 | (entry: LogEntry): Logger;
|
84 | (level: string, message: any): Logger;
|
85 | }
|
86 |
|
87 | interface LeveledLogMethod {
|
88 | (message: string, callback: LogCallback): Logger;
|
89 | (message: string, meta: any, callback: LogCallback): Logger;
|
90 | (message: string, ...meta: any[]): Logger;
|
91 | (message: any): Logger;
|
92 | (infoObject: object): Logger;
|
93 | }
|
94 |
|
95 | interface LoggerOptions {
|
96 | levels?: Config.AbstractConfigSetLevels;
|
97 | silent?: boolean;
|
98 | format?: logform.Format;
|
99 | level?: string;
|
100 | exitOnError?: Function | boolean;
|
101 | defaultMeta?: any;
|
102 | transports?: Transport[] | Transport;
|
103 | handleExceptions?: boolean;
|
104 | handleRejections?: boolean;
|
105 | exceptionHandlers?: any;
|
106 | rejectionHandlers?: any;
|
107 | }
|
108 |
|
109 | class Logger extends NodeJSStream.Transform {
|
110 | constructor(options?: LoggerOptions);
|
111 |
|
112 | silent: boolean;
|
113 | format: logform.Format;
|
114 | levels: Config.AbstractConfigSetLevels;
|
115 | level: string;
|
116 | transports: Transport[];
|
117 | exceptions: ExceptionHandler;
|
118 | rejections: RejectionHandler;
|
119 | profilers: object;
|
120 | exitOnError: Function | boolean;
|
121 | defaultMeta?: any;
|
122 |
|
123 | log: LogMethod;
|
124 | add(transport: Transport): this;
|
125 | remove(transport: Transport): this;
|
126 | clear(): this;
|
127 | close(): this;
|
128 |
|
129 | // for cli and npm levels
|
130 | error: LeveledLogMethod;
|
131 | warn: LeveledLogMethod;
|
132 | help: LeveledLogMethod;
|
133 | data: LeveledLogMethod;
|
134 | info: LeveledLogMethod;
|
135 | debug: LeveledLogMethod;
|
136 | prompt: LeveledLogMethod;
|
137 | http: LeveledLogMethod;
|
138 | verbose: LeveledLogMethod;
|
139 | input: LeveledLogMethod;
|
140 | silly: LeveledLogMethod;
|
141 |
|
142 | // for syslog levels only
|
143 | emerg: LeveledLogMethod;
|
144 | alert: LeveledLogMethod;
|
145 | crit: LeveledLogMethod;
|
146 | warning: LeveledLogMethod;
|
147 | notice: LeveledLogMethod;
|
148 |
|
149 | query(
|
150 | options?: QueryOptions,
|
151 | callback?: (err: Error, results: any) => void
|
152 | ): any;
|
153 | stream(options?: any): NodeJS.ReadableStream;
|
154 |
|
155 | startTimer(): Profiler;
|
156 | profile(id: string | number, meta?: Record<string, any>): this;
|
157 |
|
158 | configure(options: LoggerOptions): void;
|
159 |
|
160 | child(options: Object): this;
|
161 |
|
162 | isLevelEnabled(level: string): boolean;
|
163 | isErrorEnabled(): boolean;
|
164 | isWarnEnabled(): boolean;
|
165 | isInfoEnabled(): boolean;
|
166 | isVerboseEnabled(): boolean;
|
167 | isDebugEnabled(): boolean;
|
168 | isSillyEnabled(): boolean;
|
169 | }
|
170 |
|
171 | class Container {
|
172 | loggers: Map<string, Logger>;
|
173 | options: LoggerOptions;
|
174 |
|
175 | add(id: string, options?: LoggerOptions): Logger;
|
176 | get(id: string, options?: LoggerOptions): Logger;
|
177 | has(id: string): boolean;
|
178 | close(id?: string): void;
|
179 |
|
180 | constructor(options?: LoggerOptions);
|
181 | }
|
182 |
|
183 | let version: string;
|
184 | let loggers: Container;
|
185 |
|
186 | let addColors: (target: Config.AbstractConfigSetColors) => any;
|
187 | let createLogger: (options?: LoggerOptions) => Logger;
|
188 |
|
189 | // Pass-through npm level methods routed to the default logger.
|
190 | let error: LeveledLogMethod;
|
191 | let warn: LeveledLogMethod;
|
192 | let info: LeveledLogMethod;
|
193 | let http: LeveledLogMethod;
|
194 | let verbose: LeveledLogMethod;
|
195 | let debug: LeveledLogMethod;
|
196 | let silly: LeveledLogMethod;
|
197 |
|
198 | // Other pass-through methods routed to the default logger.
|
199 | let log: LogMethod;
|
200 | let query: (
|
201 | options?: QueryOptions,
|
202 | callback?: (err: Error, results: any) => void
|
203 | ) => any;
|
204 | let stream: (options?: any) => NodeJS.ReadableStream;
|
205 | let add: (transport: Transport) => Logger;
|
206 | let remove: (transport: Transport) => Logger;
|
207 | let clear: () => Logger;
|
208 | let startTimer: () => Profiler;
|
209 | let profile: (id: string | number) => Logger;
|
210 | let configure: (options: LoggerOptions) => void;
|
211 | let child: (options: Object) => Logger;
|
212 | let level: string;
|
213 | let exceptions: ExceptionHandler;
|
214 | let rejections: RejectionHandler;
|
215 | let exitOnError: Function | boolean;
|
216 | // let default: object;
|
217 | }
|
218 |
|
219 | export = winston;
|