ERP-node/frontend/lib/utils/logger.ts

53 lines
1.1 KiB
TypeScript

/**
* 프론트엔드 로거 유틸리티
*/
type LogLevel = "debug" | "info" | "warn" | "error";
class Logger {
private isDevelopment = process.env.NODE_ENV === "development";
private log(level: LogLevel, message: string, data?: any) {
if (!this.isDevelopment && level === "debug") {
return;
}
const timestamp = new Date().toISOString();
const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
switch (level) {
case "debug":
console.debug(prefix, message, data || "");
break;
case "info":
console.info(prefix, message, data || "");
break;
case "warn":
console.warn(prefix, message, data || "");
break;
case "error":
console.error(prefix, message, data || "");
break;
}
}
debug(message: string, data?: any) {
this.log("debug", message, data);
}
info(message: string, data?: any) {
this.log("info", message, data);
}
warn(message: string, data?: any) {
this.log("warn", message, data);
}
error(message: string, data?: any) {
this.log("error", message, data);
}
}
export const logger = new Logger();