UNPKG

@sujalchoudhari/solaris-ui

Version:

A UI framework to create HTML pages with just JavaScript.

78 lines 3.66 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogLevel = void 0; const fs_1 = __importDefault(require("fs")); const colorette_1 = require("colorette"); var LogLevel; (function (LogLevel) { LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG"; LogLevel[LogLevel["INFO"] = 1] = "INFO"; LogLevel[LogLevel["TIME"] = 2] = "TIME"; LogLevel[LogLevel["WARNING"] = 3] = "WARNING"; LogLevel[LogLevel["ERROR"] = 4] = "ERROR"; })(LogLevel = exports.LogLevel || (exports.LogLevel = {})); /** * Logger * ----- * A simple logger class for logging messages to the console. * @remarks * Logger class stores logs into a ./logs folder. */ class Logger { static logLevel = LogLevel.INFO; static mTime = 0; static debug(filename, ...message) { if (Logger.logLevel <= 0) Logger.write("[DEBUG]", filename, ...message); } static info(filename, ...message) { if (Logger.logLevel <= 1) Logger.write("[INFO]", filename, ...message); } static time(filename, ...message) { if (Logger.logLevel <= 2) Logger.write("[TIME]", filename, ...message, `${Date.now() - Logger.mTime}ms`); } static warn(filename, ...message) { if (Logger.logLevel <= 3) Logger.write("[WARN]", filename, ...message); } static error(filename, ...message) { if (Logger.logLevel <= 4) Logger.write("[ERROR]", filename, ...message); } static write(type, filename, ...message) { if (type == "[ERROR]") console.log((0, colorette_1.redBright)((0, colorette_1.bold)(type)), (0, colorette_1.gray)((0, colorette_1.italic)(`(${filename})\n\t`)), (0, colorette_1.red)(message.join(" "))); else if (type == "[WARN]") console.log((0, colorette_1.yellowBright)((0, colorette_1.bold)(type)), (0, colorette_1.gray)((0, colorette_1.italic)(`(${filename})\n\t`)), (0, colorette_1.yellow)(message.join(" "))); else if (type == "[TIME]") console.log((0, colorette_1.cyanBright)((0, colorette_1.bold)(type)), (0, colorette_1.gray)((0, colorette_1.italic)(`(${filename})\n\t`)), (0, colorette_1.cyan)(message.join(" "))); else if (type == "[DEBUG]") console.log((0, colorette_1.blueBright)((0, colorette_1.bold)(type)), (0, colorette_1.gray)((0, colorette_1.italic)(`(${filename})\n\t`)), (0, colorette_1.blue)(message.join(" "))); else if (type == "[INFO]") console.log((0, colorette_1.greenBright)((0, colorette_1.bold)(type)), (0, colorette_1.gray)((0, colorette_1.italic)(`(${filename})\n\t`)), (0, colorette_1.green)(message.join(" "))); if (!fs_1.default.existsSync('./logs')) fs_1.default.mkdirSync("./logs"); const date = new Date(); const filePath = `./logs/${date.getFullYear()}-${date.getMonth()}-${date.getDate()}-${date.getHours()}-${date.getMinutes()}.log`; if (!fs_1.default.existsSync(filePath)) fs_1.default.writeFileSync(filePath, `=====Log file created at ${date.toDateString()} ${date.toTimeString()}=====\n\n`); fs_1.default.appendFileSync(filePath, `${type}:\t(${filename})\t ${message.join(" ")}\n`); } static start() { Logger.mTime = Date.now(); } /** * * @returns The time elapsed since the last call to Logger.start() in milliseconds */ static end() { return Date.now() - Logger.mTime; } } exports.default = Logger; //# sourceMappingURL=logger.js.map