-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathlogger.js
71 lines (59 loc) · 1.27 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
'use strict';
const util = require('util');
const colors = require('colors');
Date.prototype.Format = function (fmt)
{
const o = {
'M+': this.getMonth() + 1,
'd+': this.getDate(),
'H+': this.getHours(),
'm+': this.getMinutes(),
's+': this.getSeconds(),
'q+': Math.floor((this.getMonth() + 3) / 3),
'f+': this.getMilliseconds()
};
if (/(y+)/.test(fmt))
{
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (let k in o)
{
if (new RegExp('(' + k + ')').test(fmt))
{
fmt = fmt.replace(RegExp.$1,
(RegExp.$1.length == 1) ?
(o[k]) :
(('00' + o[k]).substr(('' + o[k]).length)));
}
}
return fmt;
}
colors.setTheme({
time : 'white',
debug : 'green',
info : 'yellow',
warn : 'magenta',
error : 'red'
});
const log = function (type, fmt, ...args)
{
const now = new Date().Format('yyyy-MM-dd HH:mm:ss.ff');
const str = util.format(colors['time']('%s ') + colors[type](fmt), now, ...args);
console.log(str);
};
exports.debug = function (fmt, ...args)
{
log('debug', fmt, ...args);
};
exports.info = function (fmt, ...args)
{
log('info', fmt, ...args);
};
exports.warn = function (fmt, ...args)
{
log('warn', fmt, ...args);
};
exports.error = function (fmt, ...args)
{
log('error', fmt, ...args);
};