logger.ts•1.05 kB
/**
* Logger utility with configurable log levels
* Set LOG_LEVEL environment variable to: ERROR, WARN, INFO, or DEBUG
*/
export enum LogLevel {
ERROR = 0,
WARN = 1,
INFO = 2,
DEBUG = 3,
}
class Logger {
private level: LogLevel;
constructor() {
const envLevel = process.env.LOG_LEVEL?.toUpperCase() || 'INFO';
this.level = LogLevel[envLevel as keyof typeof LogLevel] ?? LogLevel.INFO;
}
error(message: string, error?: any): void {
if (this.level >= LogLevel.ERROR) {
console.error(`[ERROR] ${message}`, error || '');
}
}
warn(message: string, ...args: any[]): void {
if (this.level >= LogLevel.WARN) {
console.warn(`[WARN] ${message}`, ...args);
}
}
info(message: string, ...args: any[]): void {
if (this.level >= LogLevel.INFO) {
console.log(`[INFO] ${message}`, ...args);
}
}
debug(message: string, ...args: any[]): void {
if (this.level >= LogLevel.DEBUG) {
console.log(`[DEBUG] ${message}`, ...args);
}
}
}
export const logger = new Logger();