Skip to content

Commit 56dc2e2

Browse files
committed
Configurable log level
Signed-off-by: Gabriel Indik <[email protected]>
1 parent 7280763 commit 56dc2e2

File tree

4 files changed

+1440
-39
lines changed

4 files changed

+1440
-39
lines changed

lib/logger.ts

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,56 @@
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+
111
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+
}
326

427
private formatMessage(message: string) {
528
const now = new Date().toISOString();
629
return `${now} [${this.prefix}] ${message}`;
730
}
831

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);
1134
}
1235

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);
1538
}
1639

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);
1942
}
2043

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);
2346
}
2447

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);
2750
}
51+
52+
trace(message?: any, ...optionalParams: any[]): void {
53+
this.logLevel >= logLevels.LEVEL_TRACE && console.trace(this.formatMessage(message), ...optionalParams);
54+
}
55+
2856
}

0 commit comments

Comments
 (0)