improve logger

This commit is contained in:
grimhilt
2023-04-02 12:59:11 +02:00
parent 7ba1ee083d
commit 02e0e05c76
12 changed files with 66 additions and 40 deletions

View File

@@ -1,42 +1,52 @@
import color from "colors";
const logType = {
LOG: 0,
DEBUG: 1,
WARN: 2,
ERR: 3,
};
class Logger {
constructor() {
constructor() {}
}
log(...content): void {
// console.log(this._prefix("log"), content);
}
warn(...content): void {
// console.warn(this._prefix("warn"), content);
}
error(...content): void {
// console.error(this._prefix("err"), content);
}
_prefix(type: string): string {
let typeStr = "";
print(header: string, message: string, type: number) {
const content = `[${this._timestamp}] - [${header}] -- ${message}`;
switch (type) {
case "log":
typeStr = "LOG"
case logType.LOG:
console.log(content);
break;
case "warn":
typeStr = "WARN"
case logType.DEBUG:
console.debug(content);
break;
case "err":
typeStr = "ERR"
case logType.WARN:
console.warn(content);
break;
default:
case logType.ERR:
console.error(content);
break;
}
return `[${typeStr}: ${this._timestamp()}]`;
}
_timestamp() {
return new Date().toLocaleString();
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;
export default logger;