53 lines
1.1 KiB
TypeScript
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();
|
|
|