-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlog.js
More file actions
75 lines (68 loc) · 1.8 KB
/
log.js
File metadata and controls
75 lines (68 loc) · 1.8 KB
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
// ==Headers==
// @Name: log
// @Description: log
// @Version: 1.0.0
// @Author: dodying
// @Created: 2020-05-23 20:45:56
// @Modified: 2020-05-23 20:45:56
// @Namespace: https://github.com/dodying/Nodejs
// @SupportURL: https://github.com/dodying/Nodejs/issues
// @Require: null
// ==/Headers==
const color = {
Reset: '\x1b[0m',
Bright: '\x1b[1m',
Dim: '\x1b[2m',
Underscore: '\x1b[4m',
Blink: '\x1b[5m',
Reverse: '\x1b[7m',
Hidden: '\x1b[8m',
FgBlack: '\x1b[30m',
FgRed: '\x1b[31m',
FgGreen: '\x1b[32m',
FgYellow: '\x1b[33m',
FgBlue: '\x1b[34m',
FgMagenta: '\x1b[35m',
FgCyan: '\x1b[36m',
FgWhite: '\x1b[37m',
BgBlack: '\x1b[40m',
BgRed: '\x1b[41m',
BgGreen: '\x1b[42m',
BgYellow: '\x1b[43m',
BgBlue: '\x1b[44m',
BgMagenta: '\x1b[45m',
BgCyan: '\x1b[46m',
BgWhite: '\x1b[47m',
};
const _color = {
log: color.FgGreen,
warn: color.FgYellow,
error: color.BgRed,
debug: color.FgBlue,
};
const consoleRaw = {};
function logWithColor(type, ...args) {
if (args.length === 1 && typeof args[0] === 'string') {
const result = args[0].match(/^(.*):\t(.*)$/);
if (result && result[1].length < 16) {
let space = 16 - result[1].length - 1;
if (result[2].match(/^"/)) space = space - 1;
consoleRaw[type](`${color.FgCyan}${result[1]}${color.Reset}:${' '.repeat(space)}${_color[type]}${result[2]}${color.Reset}`);
} else {
consoleRaw[type](...args);
}
} else {
consoleRaw[type](...args);
}
}
const log = (...args) => logWithColor('log', ...args);
log.hack = () => {
for (const i in _color) {
console[i] = log[i];
}
};
for (const i in _color) {
consoleRaw[i] = console[i];
log[i] = (...args) => logWithColor(i, ...args);
}
module.exports = log;