1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import { createLogger, transports, format, addColors } from 'winston';
const loggerLevels = {
levels: {
error: 0,
debug: 1,
warn: 2,
data: 3,
info: 4,
verbose: 5,
silly: 6,
custom: 7,
},
colors: {
error: 'red',
debug: 'blue',
warn: 'yellow',
data: 'grey',
info: 'green',
verbose: 'cyan',
silly: 'magenta',
custom: 'yellow',
},
};
addColors(loggerLevels.colors);
export const logger = createLogger({
levels: loggerLevels.levels,
format: format.combine(
format.colorize({ level: true }),
format.errors({ stack: true }),
format.splat(),
format.timestamp({ format: 'MM/DD/YYYY HH:mm:ss' }),
format.printf((data: any) => {
const { timestamp, level, message, ...rest } = data;
return `[${timestamp}] ${level}: ${message}${
Object.keys(rest).length ? `\n${JSON.stringify(rest, null, 2)}` : ''
}`;
}),
),
transports: new transports.Console(),
level: 'custom',
});
|