Skip to content

Commit 5445997

Browse files
feat(common) add log levels (error, info, etc)
1 parent 7af66c5 commit 5445997

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

packages/common/services/logger.service.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import { isObject } from '../utils/shared.utils';
66
declare const process: any;
77
const yellow = clc.xterm(3);
88

9+
export type LogLevel = 'log' | 'error' | 'warn' | 'debug' | 'verbose';
10+
911
export interface LoggerService {
1012
log(message: any, context?: string);
1113
error(message: any, trace?: string, context?: string);
@@ -16,6 +18,7 @@ export interface LoggerService {
1618

1719
@Injectable()
1820
export class Logger implements LoggerService {
21+
private static logLevels: LogLevel[] = [];
1922
private static lastTimestamp?: number;
2023
private static instance?: typeof Logger | LoggerService = Logger;
2124

@@ -26,6 +29,9 @@ export class Logger implements LoggerService {
2629

2730
error(message: any, trace = '', context?: string) {
2831
const instance = this.getInstance();
32+
if (!this.isLogLevelEnabled('error')) {
33+
return;
34+
}
2935
instance &&
3036
instance.error.call(instance, message, trace, context || this.context);
3137
}
@@ -46,7 +52,11 @@ export class Logger implements LoggerService {
4652
this.callFunction('verbose', message, context);
4753
}
4854

49-
static overrideLogger(logger: LoggerService | boolean) {
55+
static overrideLogger(logger: LoggerService | LogLevel[] | boolean) {
56+
if (Array.isArray(logger)) {
57+
this.logLevels = logger;
58+
return;
59+
}
5060
this.instance = isObject(logger) ? (logger as LoggerService) : undefined;
5161
}
5262

@@ -81,6 +91,9 @@ export class Logger implements LoggerService {
8191
message: any,
8292
context?: string,
8393
) {
94+
if (!this.isLogLevelEnabled(name)) {
95+
return;
96+
}
8497
const instance = this.getInstance();
8598
const func = instance && (instance as typeof Logger)[name];
8699
func &&
@@ -97,6 +110,10 @@ export class Logger implements LoggerService {
97110
return instance === this ? Logger : instance;
98111
}
99112

113+
private isLogLevelEnabled(level: LogLevel): boolean {
114+
return Logger.logLevels.includes(level);
115+
}
116+
100117
private static printMessage(
101118
message: any,
102119
color: (message: string) => string,

0 commit comments

Comments
 (0)