123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- 'use strict';
- const coreClass = require("../core");
- const config = require('config');
- const fs = require('fs');
- const twoDigits = (num) => {
- return (num < 10) ? '0' + num : num;
- };
- const getTime = () => {
- let time = new Date();
- return {
- year: time.getFullYear(),
- month: time.getMonth() + 1,
- day: time.getDate(),
- hour: time.getHours(),
- minute: time.getMinutes(),
- second: time.getSeconds()
- }
- };
- const getTimeFormatted = () => {
- let time = getTime();
- return `${time.year}-${twoDigits(time.month)}-${twoDigits(time.day)} ${twoDigits(time.hour)}:${twoDigits(time.minute)}:${twoDigits(time.second)}`;
- }
- module.exports = class extends coreClass {
- constructor(name, moduleManager) {
- super(name, moduleManager);
- this.lockdownImmune = true;
- }
- initialize() {
- return new Promise((resolve, reject) => {
- this.setStage(1);
- this.configDirectory = `${__dirname}/../../log`;
- if (!config.isDocker && !fs.existsSync(`${this.configDirectory}`))
- fs.mkdirSync(this.configDirectory);
- let time = getTimeFormatted();
- this.logCbs = [];
- this.colors = {
- Reset: "\x1b[0m",
- Bright: "\x1b[1m",
- Dim: "\x1b[2m",
- Underscore: "\x1b[4m",
- Blink: "\x1b[5m",
- Reverse: "\x1b[7m",
- Hidden: "\x1b[8m",
- FgBlack: "\x1b[30m",
- FgRed: "\x1b[31m",
- FgGreen: "\x1b[32m",
- FgYellow: "\x1b[33m",
- FgBlue: "\x1b[34m",
- FgMagenta: "\x1b[35m",
- FgCyan: "\x1b[36m",
- FgWhite: "\x1b[37m",
- BgBlack: "\x1b[40m",
- BgRed: "\x1b[41m",
- BgGreen: "\x1b[42m",
- BgYellow: "\x1b[43m",
- BgBlue: "\x1b[44m",
- BgMagenta: "\x1b[45m",
- BgCyan: "\x1b[46m",
- BgWhite: "\x1b[47m"
- };
- fs.appendFile(this.configDirectory + '/all.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
- fs.appendFile(this.configDirectory + '/success.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
- fs.appendFile(this.configDirectory + '/error.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
- fs.appendFile(this.configDirectory + '/info.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
- fs.appendFile(this.configDirectory + '/debugStation.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
- if (this.moduleManager.fancyConsole) {
- process.stdout.write(Array(this.reservedLines).fill(`\n`).join(""));
- }
- resolve();
- });
- }
- async success(type, text, display = true) {
- try { await this._validateHook(); } catch { return; }
- const time = getTimeFormatted();
- const message = `${time} SUCCESS - ${type} - ${text}`;
- this.writeFile('all.log', message);
- this.writeFile('success.log', message);
- if (display) this.log(this.colors.FgGreen, message);
- }
- async error(type, text, display = true) {
- try { await this._validateHook(); } catch { return; }
- const time = getTimeFormatted();
- const message = `${time} ERROR - ${type} - ${text}`;
- this.writeFile('all.log', message);
- this.writeFile('error.log', message);
- if (display) this.log(this.colors.FgRed, message);
- }
- async info(type, text, display = true) {
- try { await this._validateHook(); } catch { return; }
- const time = getTimeFormatted();
- const message = `${time} INFO - ${type} - ${text}`;
- this.writeFile('all.log', message);
- this.writeFile('info.log', message);
- if (display) this.log(this.colors.FgCyan, message);
- }
- async debug(text, display = true) {
- try { await this._validateHook(); } catch { return; }
- const time = getTimeFormatted();
- const message = `${time} DEBUG - ${text}`;
- if (display) this.log(this.colors.FgMagenta, message);
- }
- async stationIssue(text, display = false) {
- try { await this._validateHook(); } catch { return; }
- const time = getTimeFormatted();
- const message = `${time} DEBUG_STATION - ${text}`;
- this.writeFile('debugStation.log', message);
- if (display) this.log(this.colors.FgMagenta, message);
- }
- log(color, message) {
- if (this.moduleManager.fancyConsole) {
- const rows = process.stdout.rows;
- const columns = process.stdout.columns;
- const lineNumber = rows - this.reservedLines;
-
- let lines = 0;
-
- message.split("\n").forEach((line) => {
- lines += Math.floor(line.replace("\t", " ").length / columns) + 1;
- });
- if (lines > this.logger.reservedLines)
- lines = this.logger.reservedLines;
- process.stdout.cursorTo(0, rows - this.logger.reservedLines);
- process.stdout.clearScreenDown();
- process.stdout.cursorTo(0, lineNumber);
- process.stdout.write(`${color}${message}${this.colors.Reset}\n`);
- process.stdout.cursorTo(0, process.stdout.rows);
- process.stdout.write(Array(lines).fill(`\n!`).join(""));
- this.moduleManager.printStatus();
- } else console.log(`${color}${message}${this.colors.Reset}`);
- }
- writeFile(fileName, message) {
- fs.appendFile(`${this.configDirectory}/${fileName}`, `${message}\n`, ()=>{});
- }
- }
|