mail/back/system/Logger.ts
2023-04-02 12:59:11 +02:00

53 lines
1.8 KiB
TypeScript

import color from "colors";
const logType = {
LOG: 0,
DEBUG: 1,
WARN: 2,
ERR: 3,
};
class Logger {
constructor() {}
print(header: string, message: string, type: number) {
const content = `[${this._timestamp}] - [${header}] -- ${message}`;
switch (type) {
case logType.LOG:
console.log(content);
break;
case logType.DEBUG:
console.debug(content);
break;
case logType.WARN:
console.warn(content);
break;
case logType.ERR:
console.error(content);
break;
}
}
log = (...message: any[]) => this.print("LOG", `${message}`, logType.LOG);
err = (...message: any[]) => this.print("ERR", `${message}`, logType.ERR);
warn = (...message: any[]) => this.print("WARN", `${message}`, logType.WARN);
debug = (...message: any[]) => this.print("DEBUG", `${message}`, logType.DEBUG);
success = (...message: any[]) => this.print("SUCCESS".green, `${message}`, logType.LOG);
get = (url: string, state: string, ...message: string[]) =>
this.print("GET".green, `[${state} - ${url}]: ${message}`, logType.LOG);
post = (url: string, state: string, ...message: string[]) =>
this.print("POST".blue, `[${state} - ${url}]: ${message}`, logType.LOG);
put = (url: string, state: string, ...message: string[]) =>
this.print("PUT".yellow, `[${state} - ${url}]: ${message}`, logType.LOG);
del = (url: string, state: string, ...message: string[]) =>
this.print("DEL".red, `[${state} - ${url}]: ${message}`, logType.LOG);
get _timestamp() {
return new Date().toLocaleString("en-GB", { hour12: false });
}
}
const logger = new Logger();
export default logger;