From 7b5df4ca0a5bd6fcf033ef40563599593b156910 Mon Sep 17 00:00:00 2001 From: Minteck Date: Wed, 13 Jul 2022 23:34:21 +0200 Subject: Initial commit --- core/LogManager.ts | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 core/LogManager.ts (limited to 'core/LogManager.ts') diff --git a/core/LogManager.ts b/core/LogManager.ts new file mode 100644 index 0000000..916bc67 --- /dev/null +++ b/core/LogManager.ts @@ -0,0 +1,84 @@ +import chalk from 'chalk'; +import * as fs from 'fs'; + +if (!fs.existsSync("logs")) fs.mkdirSync("logs"); + +export class LogManager { + public static logID = new Date().toISOString(); + + /** + * @return void + * @param message - The message to display + * @description Shows a warning message + */ + public static warn(message: string): void { + let messageParts = message.split(":"); + let messagePrefix = messageParts[0]; + messageParts.shift() + + console.log( + chalk.gray("[" + new Date().toISOString() + "] ") + + chalk.yellow("[warn] ") + + (messageParts.length > 0 ? chalk.underline(messagePrefix) + ":" + messageParts.join(":") : messagePrefix) + ); + + fs.appendFileSync("logs/" + LogManager.logID + ".txt", "\n[" + new Date().toISOString() + "] [warn] " + message); + } + + /** + * @return void + * @param message - The message to display + * @description Shows an information message + */ + public static info(message: string): void { + let messageParts = message.split(":"); + let messagePrefix = messageParts[0]; + messageParts.shift() + + console.log( + chalk.gray("[" + new Date().toISOString() + "] ") + + chalk.cyan("[info] ") + + (messageParts.length > 0 ? chalk.underline(messagePrefix) + ":" + messageParts.join(":") : messagePrefix) + ); + + fs.appendFileSync("logs/" + LogManager.logID + ".txt", "\n[" + new Date().toISOString() + "] [info] " + message); + } + + /** + * @return void + * @param message - The message to display + * @description Shows a debugging message + */ + public static verbose(message: string): void { + let messageParts = message.split(":"); + let messagePrefix = messageParts[0]; + messageParts.shift() + + console.log( + chalk.gray("[" + new Date().toISOString() + "] ") + + chalk.green("[verb] ") + + (messageParts.length > 0 ? chalk.underline(messagePrefix) + ":" + messageParts.join(":") : messagePrefix) + ); + + fs.appendFileSync("logs/" + LogManager.logID + ".txt", "\n[" + new Date().toISOString() + "] [verb] " + message); + } + + /** + * @return void + * @param message - The message to display + * @description Shows an error message + */ + public static error(message: string): void { + let messageParts = message.split(":"); + let messagePrefix = messageParts[0]; + messageParts.shift() + + console.log( + chalk.gray("[" + new Date().toISOString() + "] ") + + chalk.red("[crit] ") + + (messageParts.length > 0 ? chalk.underline(messagePrefix) + ":" + messageParts.join(":") : messagePrefix) + ); + + fs.appendFileSync("logs/" + LogManager.logID + ".txt", "\n[" + new Date().toISOString() + "] [crit] " + message); + } +} -- cgit