|
| 1 | +enum logLevels { |
| 2 | + LEVEL_NONE, |
| 3 | + LEVEL_ERROR, |
| 4 | + LEVEL_WARN, |
| 5 | + LEVEL_LOG, |
| 6 | + LEVEL_INFO, |
| 7 | + LEVEL_DEBUG, |
| 8 | + LEVEL_TRACE |
| 9 | +} |
| 10 | + |
1 | 11 | export default class Logger {
|
2 |
| - constructor(private prefix: string) {} |
| 12 | + |
| 13 | + private logLevel = logLevels.LEVEL_LOG; |
| 14 | + |
| 15 | + constructor(private prefix: string) { |
| 16 | + switch (process.env.FF_SDK_LOG_LEVEL) { |
| 17 | + case 'NONE': this.logLevel = logLevels.LEVEL_NONE; break; |
| 18 | + case 'ERROR': this.logLevel = logLevels.LEVEL_ERROR; break; |
| 19 | + case 'WARN': this.logLevel = logLevels.LEVEL_WARN; break; |
| 20 | + case 'LOG': this.logLevel = logLevels.LEVEL_LOG; break; |
| 21 | + case 'INFO': this.logLevel = logLevels.LEVEL_INFO; break; |
| 22 | + case 'DEBUG': this.logLevel = logLevels.LEVEL_DEBUG; break; |
| 23 | + case 'TRACE': this.logLevel = logLevels.LEVEL_TRACE; break; |
| 24 | + } |
| 25 | + } |
3 | 26 |
|
4 | 27 | private formatMessage(message: string) {
|
5 | 28 | const now = new Date().toISOString();
|
6 | 29 | return `${now} [${this.prefix}] ${message}`;
|
7 | 30 | }
|
8 | 31 |
|
9 |
| - log(message?: any, ...optionalParams: any[]): void { |
10 |
| - console.log(this.formatMessage(message), ...optionalParams); |
| 32 | + error(message?: any, ...optionalParams: any[]): void { |
| 33 | + this.logLevel >= logLevels.LEVEL_ERROR && console.error(this.formatMessage(message), ...optionalParams); |
11 | 34 | }
|
12 | 35 |
|
13 |
| - debug(message?: any, ...optionalParams: any[]): void { |
14 |
| - console.debug(this.formatMessage(message), ...optionalParams); |
| 36 | + warn(message?: any, ...optionalParams: any[]): void { |
| 37 | + this.logLevel >= logLevels.LEVEL_WARN && console.warn(this.formatMessage(message), ...optionalParams); |
15 | 38 | }
|
16 | 39 |
|
17 |
| - trace(message?: any, ...optionalParams: any[]): void { |
18 |
| - console.trace(this.formatMessage(message), ...optionalParams); |
| 40 | + log(message?: any, ...optionalParams: any[]): void { |
| 41 | + this.logLevel >= logLevels.LEVEL_LOG && console.log(this.formatMessage(message), ...optionalParams); |
19 | 42 | }
|
20 | 43 |
|
21 |
| - warn(message?: any, ...optionalParams: any[]): void { |
22 |
| - console.warn(this.formatMessage(message), ...optionalParams); |
| 44 | + info(message?: any, ...optionalParams: any[]): void { |
| 45 | + this.logLevel >= logLevels.LEVEL_INFO && console.info(this.formatMessage(message), ...optionalParams); |
23 | 46 | }
|
24 | 47 |
|
25 |
| - error(message?: any, ...optionalParams: any[]): void { |
26 |
| - console.error(this.formatMessage(message), ...optionalParams); |
| 48 | + debug(message?: any, ...optionalParams: any[]): void { |
| 49 | + this.logLevel >= logLevels.LEVEL_DEBUG && console.debug(this.formatMessage(message), ...optionalParams); |
27 | 50 | }
|
| 51 | + |
| 52 | + trace(message?: any, ...optionalParams: any[]): void { |
| 53 | + this.logLevel >= logLevels.LEVEL_TRACE && console.trace(this.formatMessage(message), ...optionalParams); |
| 54 | + } |
| 55 | + |
28 | 56 | }
|
0 commit comments