source: trip-planner-front/node_modules/log4js/types/log4js.d.ts@ ceaed42

Last change on this file since ceaed42 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 9.2 KB
Line 
1// Type definitions for log4js
2
3type Format = string | ((req: any, res: any, formatter: ((str: string) => string)) => string);
4
5export interface Log4js {
6 getLogger(category?: string): Logger;
7 configure(filename: string): Log4js;
8 configure(config: Configuration): Log4js;
9 addLayout(name: string, config: (a: any) => (logEvent: LoggingEvent) => string): void;
10 connectLogger(logger: Logger, options: { format?: Format; level?: string; nolog?: any; }): any; // express.Handler;
11 levels: Levels;
12 shutdown(cb: (error: Error) => void): void | null;
13}
14
15export function getLogger(category?: string): Logger;
16
17export function configure(filename: string): Log4js;
18export function configure(config: Configuration): Log4js;
19
20export function addLayout(name: string, config: (a: any) => (logEvent: LoggingEvent) => any): void;
21
22export function connectLogger(logger: Logger, options: { format?: Format; level?: string; nolog?: any; statusRules?: any[], context?: boolean }): any; // express.Handler;
23
24export const levels: Levels;
25
26export function shutdown(cb?: (error: Error) => void): void | null;
27
28export interface BaseLayout {
29 type: 'basic';
30}
31
32export interface ColoredLayout {
33 type: 'colored' | 'coloured';
34}
35
36export interface MessagePassThroughLayout {
37 type: 'messagePassThrough';
38}
39
40export interface DummyLayout {
41 type: 'dummy';
42}
43
44export interface Level {
45 isEqualTo(other: string): boolean;
46 isEqualTo(otherLevel: Level): boolean;
47 isLessThanOrEqualTo(other: string): boolean;
48 isLessThanOrEqualTo(otherLevel: Level): boolean;
49 isGreaterThanOrEqualTo(other: string): boolean;
50 isGreaterThanOrEqualTo(otherLevel: Level): boolean;
51 colour: string;
52 level: number;
53 levelStr: string;
54}
55
56export interface LoggingEvent {
57 categoryName: string; // name of category
58 level: Level; // level of message
59 data: any[]; // objects to log
60 startTime: Date;
61 pid: number;
62 context: any;
63 cluster?: {
64 workerId: number;
65 worker: number;
66 };
67}
68
69export type Token = ((logEvent: LoggingEvent) => string) | string;
70
71export interface PatternLayout {
72 type: 'pattern';
73 // specifier for the output format, using placeholders as described below
74 pattern: string;
75 // user-defined tokens to be used in the pattern
76 tokens?: { [name: string]: Token };
77}
78
79export interface CustomLayout {
80 [key: string]: any;
81 type: string;
82}
83
84export type Layout = BaseLayout | ColoredLayout | MessagePassThroughLayout | DummyLayout | PatternLayout | CustomLayout;
85
86/**
87 * Category Filter
88 *
89 * @see https://log4js-node.github.io/log4js-node/categoryFilter.html
90 */
91export interface CategoryFilterAppender {
92 type: "categoryFilter";
93 // the category (or categories if you provide an array of values) that will be excluded from the appender.
94 exclude?: string | string[];
95 // the name of the appender to filter. see https://log4js-node.github.io/log4js-node/layouts.html
96 appender?: string;
97}
98
99/**
100 * No Log Filter
101 *
102 * @see https://log4js-node.github.io/log4js-node/noLogFilter.html
103 */
104export interface NoLogFilterAppender {
105 type: "noLogFilter";
106 // the regular expression (or the regular expressions if you provide an array of values)
107 // will be used for evaluating the events to pass to the appender.
108 // The events, which will match the regular expression, will be excluded and so not logged.
109 exclude: string | string[];
110 // the name of an appender, defined in the same configuration, that you want to filter.
111 appender: string;
112}
113
114/**
115 * Console Appender
116 *
117 * @see https://log4js-node.github.io/log4js-node/console.html
118 */
119export interface ConsoleAppender {
120 type: 'console';
121 // defaults to colouredLayout
122 layout?: Layout;
123}
124
125export interface FileAppender {
126 type: 'file';
127 // the path of the file where you want your logs written.
128 filename: string;
129 // the maximum size (in bytes) for the log file. If not specified, then no log rolling will happen.
130 maxLogSize?: number | string;
131 // (default value = 5) - the number of old log files to keep during log rolling.
132 backups?: number;
133 // defaults to basic layout
134 layout?: Layout;
135 numBackups?: number;
136 compress?: boolean; // compress the backups
137 // keep the file extension when rotating logs
138 keepFileExt?: boolean;
139 encoding?: string;
140 mode?: number;
141 flags?: string;
142}
143
144export interface SyncfileAppender {
145 type: 'fileSync';
146 // the path of the file where you want your logs written.
147 filename: string;
148 // the maximum size (in bytes) for the log file. If not specified, then no log rolling will happen.
149 maxLogSize?: number | string;
150 // (default value = 5) - the number of old log files to keep during log rolling.
151 backups?: number;
152 // defaults to basic layout
153 layout?: Layout;
154}
155
156export interface DateFileAppender {
157 type: 'dateFile';
158 // the path of the file where you want your logs written.
159 filename: string;
160 // defaults to basic layout
161 layout?: Layout;
162 // defaults to .yyyy-MM-dd - the pattern to use to determine when to roll the logs.
163 /**
164 * The following strings are recognised in the pattern:
165 * - yyyy : the full year, use yy for just the last two digits
166 * - MM : the month
167 * - dd : the day of the month
168 * - hh : the hour of the day (24-hour clock)
169 * - mm : the minute of the hour
170 * - ss : seconds
171 * - SSS : milliseconds (although I'm not sure you'd want to roll your logs every millisecond)
172 * - O : timezone (capital letter o)
173 */
174 pattern?: string;
175 // default “utf-8”
176 encoding?: string;
177 // default 0644
178 mode?: number;
179 // default ‘a’
180 flags?: string;
181 // compress the backup files during rolling (backup files will have .gz extension)(default false)
182 compress?: boolean;
183 // include the pattern in the name of the current log file as well as the backups.(default false)
184 alwaysIncludePattern?: boolean;
185 // keep the file extension when rotating logs
186 keepFileExt?: boolean;
187 // if this value is greater than zero, then files older than that many days will be deleted during log rolling.(default 0)
188 daysToKeep?: number;
189}
190
191export interface LogLevelFilterAppender {
192 type: 'logLevelFilter';
193 // the name of an appender, defined in the same configuration, that you want to filter
194 appender: string;
195 // the minimum level of event to allow through the filter
196 level: string;
197 // (defaults to FATAL) - the maximum level of event to allow through the filter
198 maxLevel?: string;
199}
200
201export interface MultiFileAppender {
202 type: 'multiFile';
203 // the base part of the generated log filename
204 base: string;
205 // the value to use to split files (see below).
206 property: string;
207 // the suffix for the generated log filename.
208 extension: string;
209}
210
211export interface MultiprocessAppender {
212 type: 'multiprocess';
213 // controls whether the appender listens for log events sent over the network, or is responsible for serialising events and sending them to a server.
214 mode: 'master' | 'worker';
215 // (only needed if mode == master)- the name of the appender to send the log events to
216 appender?: string;
217 // (defaults to 5000) - the port to listen on, or send to
218 loggerPort?: number;
219 // (defaults to localhost) - the host/IP address to listen on, or send to
220 loggerHost?: string;
221}
222
223export interface RecordingAppender {
224 type: 'recording';
225}
226
227export interface StandardErrorAppender {
228 type: 'stderr';
229 // (defaults to colouredLayout)
230 layout?: Layout;
231}
232
233export interface StandardOutputAppender {
234 type: 'stdout';
235 // (defaults to colouredLayout)
236 layout?: Layout;
237}
238
239export interface CustomAppender {
240 type: string | AppenderModule;
241 [key: string]: any;
242}
243
244export interface AppenderModule {
245 configure: Function
246}
247
248export type Appender = CategoryFilterAppender
249 | ConsoleAppender
250 | FileAppender
251 | SyncfileAppender
252 | DateFileAppender
253 | LogLevelFilterAppender
254 | NoLogFilterAppender
255 | MultiFileAppender
256 | MultiprocessAppender
257 | RecordingAppender
258 | StandardErrorAppender
259 | StandardOutputAppender
260 | CustomAppender;
261
262export interface Levels {
263 ALL: Level;
264 MARK: Level;
265 TRACE: Level;
266 DEBUG: Level;
267 INFO: Level;
268 WARN: Level;
269 ERROR: Level;
270 FATAL: Level;
271 OFF: Level;
272 levels: Level[];
273 getLevel(level: string): Level;
274 addLevels(customLevels: object): void;
275}
276
277export interface Configuration {
278 appenders: { [name: string]: Appender; };
279 categories: { [name: string]: { appenders: string[]; level: string; enableCallStack?: boolean; } };
280 pm2?: boolean;
281 pm2InstanceVar?: string;
282 levels?: Levels;
283 disableClustering?: boolean;
284}
285
286export class Logger {
287 new(dispatch: Function, name: string): Logger;
288
289 readonly category: string;
290 level: string;
291
292 log(...args: any[]): void;
293
294 isLevelEnabled(level?: string): boolean;
295
296 isTraceEnabled(): boolean;
297 isDebugEnabled(): boolean;
298 isInfoEnabled(): boolean;
299 isWarnEnabled(): boolean;
300 isErrorEnabled(): boolean;
301 isFatalEnabled(): boolean;
302
303 _log(level: string, data: any): void;
304
305 addContext(key: string, value: any): void;
306
307 removeContext(key: string): void;
308
309 clearContext(): void;
310
311 setParseCallStackFunction(parseFunction: Function): void;
312
313 trace(message: any, ...args: any[]): void;
314
315 debug(message: any, ...args: any[]): void;
316
317 info(message: any, ...args: any[]): void;
318
319 warn(message: any, ...args: any[]): void;
320
321 error(message: any, ...args: any[]): void;
322
323 fatal(message: any, ...args: any[]): void;
324
325 mark(message: any, ...args: any[]): void;
326}
Note: See TracBrowser for help on using the repository browser.