mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-04-13 15:13:25 +00:00
37 lines
896 B
TypeScript
37 lines
896 B
TypeScript
import debug, { Debugger } from "debug";
|
|
|
|
const APP_NAME = "waku";
|
|
|
|
export class Logger {
|
|
private _info: Debugger;
|
|
private _warn: Debugger;
|
|
private _error: Debugger;
|
|
|
|
static createDebugNamespace(level: string, prefix?: string): string {
|
|
return prefix ? `${APP_NAME}:${level}:${prefix}` : `${APP_NAME}:${level}`;
|
|
}
|
|
|
|
constructor(prefix?: string) {
|
|
this._info = debug(Logger.createDebugNamespace("info", prefix));
|
|
this._warn = debug(Logger.createDebugNamespace("warn", prefix));
|
|
this._error = debug(Logger.createDebugNamespace("error", prefix));
|
|
}
|
|
|
|
get info(): Debugger {
|
|
return this._info;
|
|
}
|
|
|
|
get warn(): Debugger {
|
|
return this._warn;
|
|
}
|
|
|
|
get error(): Debugger {
|
|
return this._error;
|
|
}
|
|
|
|
log(level: "info" | "warn" | "error", ...args: unknown[]): void {
|
|
const logger = this[level] as (...args: unknown[]) => void;
|
|
logger(...args);
|
|
}
|
|
}
|