logger.ts•1.01 kB
export enum LogLevel {
DEBUG = 0,
INFO = 1,
WARN = 2,
ERROR = 3,
}
class Logger {
private level: LogLevel = LogLevel.INFO;
constructor() {
const envLevel = process.env.LOG_LEVEL?.toUpperCase();
if (envLevel && LogLevel[envLevel as keyof typeof LogLevel] !== undefined) {
this.level = LogLevel[envLevel as keyof typeof LogLevel];
}
}
debug(message: string, ...args: any[]): void {
if (this.level <= LogLevel.DEBUG) {
console.warn(`[DEBUG] ${message}`, ...args);
}
}
info(message: string, ...args: any[]): void {
if (this.level <= LogLevel.INFO) {
console.warn(`[INFO] ${message}`, ...args);
}
}
warn(message: string, ...args: any[]): void {
if (this.level <= LogLevel.WARN) {
console.warn(`[WARN] ${message}`, ...args);
}
}
error(message: string, error?: Error | unknown): void {
if (this.level <= LogLevel.ERROR) {
console.error(`[ERROR] ${message}`, error);
}
}
}
export const logger = new Logger();