forked from blargbot/blargbot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
logger.js
107 lines (105 loc) · 4.43 KB
/
logger.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
101
102
103
104
105
106
107
var e = module.exports = {};
const winston = require('winston');
const moment = require('moment-timezone');
const path = require('path');
const config = require('winston/lib/winston/config');
e.init = () => {
var logger = e.logger = new (winston.Logger)({
levels: {
uncaughterror: 0,
error: 1,
warn: 2,
command: 3,
init: 4,
output: 5,
irc: 6,
info: 7,
music: 8,
verbose: 9,
debug: 10,
silly: 11
},
colors: {
error: 'red',
uncaughterror: 'red',
warn: 'yellow',
info: 'green',
verbose: 'cyan',
debug: 'grey',
silly: 'magenta',
command: 'blue',
music: 'cyan',
init: 'green',
output: 'magenta',
irc: 'yellow',
timestamp: 'grey',
bold: 'bold'
},
level: 'debug',
exitOnError: false,
transports: [
new (winston.transports.Console)({
prettyPrint: true,
colorize: true,
name: 'general',
silent: false,
handleExceptions: true,
stderrLevels: ['error', 'warn'],
timestamp: () => {
return `[${moment().tz('Canada/Mountain').format('MM/DD HH:mm:ss')}]`;
},
formatter: options => {
// Return string will be passed to logger.
return config.colorize('timestamp', options.timestamp()) + config.colorize(options.level, '[' + options.level.toUpperCase() + '] ')
+ (options.level == 'error' && options.meta && options.meta.stack ? (options.meta.stack.join ? options.meta.stack.join('\n') : options.meta.stack) : (undefined !== options.message ? options.message : '') +
(options.meta && Object.keys(options.meta).length ? '\n\t' + JSON.stringify(options.meta, null, 2) : ''));
}
}),
new (winston.transports.File)({
name: 'file-general',
filename: path.join(__dirname, 'logs', 'generallogs.log'),
maxsize: 10000000,
prettyPrint: true,
colorize: true,
json: false,
silent: false,
handleExceptions: true,
timestamp: () => {
return `[${moment().tz('Canada/Mountain').format('MM/DD HH:mm:ss')}]`;
},
formatter: options => {
// Return string will be passed to logger.
return options.timestamp() + '[' + options.level.toUpperCase() + '] '
+ (options.level == 'error' && options.meta && options.meta.stack
? (options.meta.stack.join ? options.meta.stack.join('\n') : options.meta.stack)
: (undefined !== options.message ? options.message : '') +
(options.meta && Object.keys(options.meta).length
? '\n\t' + JSON.stringify(options.meta, null, 2) : ''));
}
}),
new (winston.transports.File)({
name: 'file-error',
filename: path.join(__dirname, 'logs', 'errorlogs.log'),
maxsize: 10000000,
prettyPrint: true,
colorize: true,
level: 'error',
silent: false,
handleExceptions: true,
timestamp: () => {
return `[${moment().tz('Canada/Mountain').format('MM/DD HH:mm:ss')}]`;
},
formatter: options => {
// Return string will be passed to logger.
return options.timestamp() + '[' + options.level.toUpperCase() + '] '
+ (options.level == 'error' && options.meta && options.meta.stack
? (options.meta.stack.join ? options.meta.stack.join('\n') : options.meta.stack)
: (undefined !== options.message ? options.message : '') +
(options.meta && Object.keys(options.meta).length
? '\n\t' + JSON.stringify(options.meta, null, 2) : ''));
}
})
]
});
return logger;
};