-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger.ts
110 lines (96 loc) · 2.29 KB
/
logger.ts
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
108
109
110
import { ILogger, LogLevel } from "./logger.types";
/**
* Basic console logger
*
* @export
* @class ConsoleLogger
* @typedef {ConsoleLogger}
* @implements {ILogger}
*/
export class ConsoleLogger implements ILogger {
private logLevel: LogLevel = LogLevel.INFO;
/**
* Creates an instance of ConsoleLogger.
*
* @constructor
* @param {LogLevel} [logLevel=LogLevel.INFO]
*/
constructor(logLevel: LogLevel = LogLevel.INFO) {
this.logLevel = logLevel;
}
/**
* sets the log level
*
* @public
* @param {LogLevel} logLevel
*/
public setLogLevel(logLevel: LogLevel) {
this.logLevel = logLevel;
}
/**
* log fatal message
*
* @public
* @param {...any[]} args
*/
public fatal(message: string, ...args: any[]): void {
if (this.logLevel >= LogLevel.FATAL) {
console.error(`[FATAL] ${message}`, ...args);
}
}
/**
* log error message
*
* @public
* @param {...any[]} args
*/
public error(message: string, ...args: any[]): void {
if (this.logLevel >= LogLevel.ERROR) {
console.error(`[ERROR] ${message}`, ...args);
}
}
/**
* log warning message
*
* @public
* @param {...any[]} args
*/
public warn(message: string, ...args: any[]): void {
if (this.logLevel >= LogLevel.WARN) {
console.warn(`[WARN] ${message}`, ...args);
}
}
/**
* log info message
*
* @public
* @param {...any[]} args
*/
public info(message: string, ...args: any[]): void {
if (this.logLevel >= LogLevel.INFO) {
console.log(`[INFO] ${message}`, ...args);
}
}
/**
* log debug message
*
* @public
* @param {...any[]} args
*/
public debug(message: string, ...args: any[]): void {
if (this.logLevel >= LogLevel.DEBUG) {
console.debug(`[DEBUG] ${message}`, ...args);
}
}
/**
* log trace message
*
* @public
* @param {...any[]} args
*/
public trace(message: string, ...args: any[]): void {
if (this.logLevel >= LogLevel.TRACE) {
console.trace(`[TRACE] ${message}`, ...args);
}
}
}