blob: 758af5139a16d624adec09216437b341b6fc68da (
plain)
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
|
import { ANSI, LogLevel, ILogger } from './index.js';
export class PrettyJsonConsoleLogger implements ILogger {
public log(level: LogLevel, ...trace: string[]) {
const message = JSON.stringify(
{
level,
trace,
},
null,
4,
);
const styled = `${this.getStyle(level)}${message}${ANSI.RESET}\n`;
this.getStream(level)(styled);
}
private getStream(level: LogLevel) {
if (level === LogLevel.ERROR) {
return console.error;
}
return console.log;
}
private getStyle(level: LogLevel) {
switch (level) {
case LogLevel.UNKNOWN:
case LogLevel.INFO:
return `${ANSI.MAGENTA}`;
case LogLevel.DEBUG:
return `${ANSI.CYAN}`;
case LogLevel.WARN:
return `${ANSI.BRIGHT_YELLOW}`;
case LogLevel.ERROR:
return `${ANSI.BRIGHT_RED}`;
case LogLevel.SYS:
return `${ANSI.DIM}${ANSI.BLUE}`;
}
}
}
|