UNPKG

@kyve/core-beta

Version:

🚀 The base KYVE node implementation.

82 lines (81 loc) • 3.07 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupLogger = void 0; const fs_1 = require("fs"); const path_1 = __importDefault(require("path")); const tslog_1 = require("tslog"); const __1 = require("../.."); /** * setupLogger creates the logger instance and defines the home and file * where logs are saved for debugging. * * @method setupLogger * @param {Node} this * @return {void} */ function setupLogger() { try { // if "logs" folder under target path does not exist create it if (!(0, fs_1.existsSync)(path_1.default.join(this.home, "logs"))) { (0, fs_1.mkdirSync)(path_1.default.join(this.home, "logs"), { recursive: true }); } // name the log file after the time the node got started const logFile = `${new Date().toISOString()}.log`; const logToTransport = (log) => { const message = log.argumentsArray[0]; if (typeof message === "string") { // don't save cache logs because this would bloat // the local storage if (message.startsWith("this.cache")) { return; } // don't save runtime logs because this would bloat // the local storage if (message.startsWith("this.runtime")) { return; } } // format log message let format = `${log.date.toISOString()} ${log.logLevel.toUpperCase()}\t[${log.fileName}:${log.lineNumber}]`; for (const arg of log.argumentsArray) { if (typeof arg === "string") { format += ` ${arg}`; } else { format += ` ${JSON.stringify(arg)}`; } } // save logs to specified path target (0, fs_1.appendFileSync)(path_1.default.join(this.home, `logs`, logFile), format + "\n"); }; // hide verbose logging information const logger = new tslog_1.Logger({ displayFilePath: "hidden", displayFunctionName: this.debug, }); // set log level depending on debug mode // TODO @regenisis: remove deprecated "--verbose" option flag logger.setSettings({ minLevel: this.debug ? undefined : "info", }); logger.attachTransport({ silly: logToTransport, debug: logToTransport, trace: logToTransport, info: logToTransport, warn: logToTransport, error: logToTransport, fatal: logToTransport, }); this.logger = logger; } catch (err) { this.logger.fatal(`Failed to init logger. Exiting ...`); this.logger.fatal((0, __1.standardizeJSON)(err)); process.exit(1); } } exports.setupLogger = setupLogger;