53 lines
1.8 KiB
TypeScript
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;
|