Improve logger API
This commit is contained in:
parent
8b07507090
commit
d965265709
1 changed files with 6 additions and 24 deletions
|
|
@ -21,41 +21,27 @@ export class LogLine {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Logger {
|
export class Logger {
|
||||||
private static readonly MAX_MESSAGES = 1000;
|
private static readonly MAX_MESSAGES = 10000;
|
||||||
|
|
||||||
private static instance: Logger | null = null;
|
|
||||||
private readonly messages: LogLine[] = [];
|
private readonly messages: LogLine[] = [];
|
||||||
|
private readonly onMessageListeners: ((message: LogLine) => void)[] = [];
|
||||||
|
|
||||||
private readonly onMessageListeners: ((
|
public constructor(...onMessageListeners: ((message: LogLine) => void)[]) {
|
||||||
status: LogLine | undefined
|
this.onMessageListeners = onMessageListeners;
|
||||||
) => void)[] = [];
|
|
||||||
|
|
||||||
private constructor() {} // eslint-disable-line @typescript-eslint/no-empty-function
|
|
||||||
|
|
||||||
public static getInstance(): Logger {
|
|
||||||
if (!Logger.instance) {
|
|
||||||
Logger.instance = new Logger();
|
|
||||||
}
|
|
||||||
return Logger.instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public debug(message: string): void {
|
public debug(message: string): void {
|
||||||
console.debug(message);
|
|
||||||
this.pushMessage(message, LogLevel.DEBUG);
|
this.pushMessage(message, LogLevel.DEBUG);
|
||||||
}
|
}
|
||||||
|
|
||||||
public info(message: string): void {
|
public info(message: string): void {
|
||||||
console.info(message);
|
|
||||||
this.pushMessage(message, LogLevel.INFO);
|
this.pushMessage(message, LogLevel.INFO);
|
||||||
}
|
}
|
||||||
|
|
||||||
public warn(message: string): void {
|
public warn(message: string): void {
|
||||||
console.warn(message);
|
|
||||||
this.pushMessage(message, LogLevel.WARNING);
|
this.pushMessage(message, LogLevel.WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public error(message: string): void {
|
public error(message: string): void {
|
||||||
console.error(message);
|
|
||||||
this.pushMessage(message, LogLevel.ERROR);
|
this.pushMessage(message, LogLevel.ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,17 +53,13 @@ export class Logger {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public addOnMessageListener(
|
public addOnMessageListener(listener: (message: LogLine) => void): void {
|
||||||
listener: (message: LogLine | undefined) => void
|
|
||||||
): void {
|
|
||||||
this.onMessageListeners.push(listener);
|
this.onMessageListeners.push(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public reset(): void {
|
public reset(): void {
|
||||||
this.messages.length = 0;
|
this.messages.length = 0;
|
||||||
this.onMessageListeners.forEach((listener) => {
|
this.debug("Logger has been reset");
|
||||||
listener(undefined);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private pushMessage(message: string, level: LogLevel): void {
|
private pushMessage(message: string, level: LogLevel): void {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue