-
Notifications
You must be signed in to change notification settings - Fork 6
/
winston.js
100 lines (82 loc) · 2.74 KB
/
winston.js
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
const { createLogger, format, transports } = require("winston");
const logger = createLogger({
level: "info",
format: format.combine(
format.timestamp({
format: "YYYY-MM-DD HH:mm:ss",
}),
format.errors({ stack: true }),
format.splat(),
format.json()
),
defaultMeta: { service: "horter-server" },
transports: [
//
// - Write to all logs with level `info` and below to `quick-start-combined.log`.
// - Write all logs error (and below) to `quick-start-error.log`.
//
new transports.File({ filename: "quick-start-error.log", level: "error" }),
new transports.File({ filename: "quick-start-combined.log" }),
],
});
//
// If we're not in production then **ALSO** log to the `console`
// with the colorized simple format.
//
if (process.env.NODE_ENV !== "production") {
logger.add(
new transports.Console({
format: format.combine(format.colorize(), format.simple()),
})
);
}
module.exports = logger;
// ***************
// Allows for JSON logging
// ***************
// logger.log({
// level: 'info',
// message: 'Pass an object and this works',
// additional: 'properties',
// are: 'passed along'
// });
// logger.info({
// message: 'Use a helper method if you want',
// additional: 'properties',
// are: 'passed along'
// });
// // ***************
// // Allows for parameter-based logging
// // ***************
// logger.log('info', 'Pass a message and this works', {
// additional: 'properties',
// are: 'passed along'
// });
// logger.info('Use a helper method if you want', {
// additional: 'properties',
// are: 'passed along'
// });
// // ***************
// // Allows for string interpolation
// // ***************
// // info: test message my string {}
// logger.log('info', 'test message %s', 'my string');
// // info: test message my 123 {}
// logger.log('info', 'test message %d', 123);
// // info: test message first second {number: 123}
// logger.log('info', 'test message %s, %s', 'first', 'second', { number: 123 });
// // prints "Found error at %s"
// logger.info('Found %s at %s', 'error', new Date());
// logger.info('Found %s at %s', 'error', new Error('chill winston'));
// logger.info('Found %s at %s', 'error', /WUT/);
// logger.info('Found %s at %s', 'error', true);
// logger.info('Found %s at %s', 'error', 100.00);
// logger.info('Found %s at %s', 'error', ['1, 2, 3']);
// // ***************
// // Allows for logging Error instances
// // ***************
// logger.warn(new Error('Error passed as info'));
// logger.log('error', new Error('Error passed as message'));
// logger.warn('Maybe important error: ', new Error('Error passed as meta'));
// logger.log('error', 'Important error: ', new Error('Error passed as meta'));
// logger.error(new Error('Error as info'));