@sujalchoudhari/solaris-ui
Version:
A UI framework to create HTML pages with just JavaScript.
78 lines • 3.66 kB
JavaScript
;
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