UNPKG

trm-commons

Version:

TRM (Transport Request Manager) Shared library

93 lines (92 loc) 3.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CliLogFileLogger = void 0; const CliLogger_1 = require("./CliLogger"); const fs_1 = require("fs"); const uuid_1 = require("uuid"); const path_1 = require("path"); const get_stack_trace_1 = require("get-stack-trace"); class CliLogFileLogger extends CliLogger_1.CliLogger { constructor(_dir, debug) { super(debug); this._dir = _dir; if (!(0, fs_1.existsSync)(this._dir)) { (0, fs_1.mkdirSync)(this._dir, { recursive: true }); } this._sessionId = (0, uuid_1.v4)(); this._filePath = (0, path_1.join)(this._dir, `${this._sessionId}.txt`); (0, fs_1.writeFileSync)(this.getFilePath(), `*** STARTING LOG SESSION ID ${this._sessionId}, ${new Date().toISOString()} ***`); } getSessionId() { return this._sessionId; } _getStackTrace() { var sStackTrace; try { const aStackTrace = (0, get_stack_trace_1.getStackTrace)(); const oStackTrace = aStackTrace[5]; const moduleName = /(trm-[^\\\/]*)(?:\\{1,2}|\/{1,2})dist/gmi.exec(oStackTrace.fileName)[1]; sStackTrace = `[${moduleName}] ${oStackTrace.functionName} ${oStackTrace.lineNumber},${oStackTrace.columnNumber}`; } catch (e) { sStackTrace = ``; } return sStackTrace; } _getDebugString(text, type) { const sStackTrace = this._getStackTrace(); return `${type} ${new Date().toISOString()} ${sStackTrace} ${text}`; } _append(text, type) { (0, fs_1.appendFileSync)(this.getFilePath(), `\n${this._getDebugString(text, type)}`); } endLog() { (0, fs_1.appendFileSync)(this.getFilePath(), `\n*** ENDING LOG SESSION ID ${this._sessionId}, ${new Date().toISOString()} ***`); } getFilePath() { return this._filePath; } loading(text, debug) { this._append(text, 'WAIT'); super.loading(text, debug); } success(text, debug) { this._append(text, 'OK '); super.success(text, debug); } error(text, debug) { this._append(text, 'ERR '); super.error(text, debug); } warning(text, debug) { this._append(text, 'WARN'); super.warning(text, debug); } info(text, debug) { this._append(text, 'INFO'); super.info(text, debug); } log(text, debug) { this._append(text, 'LOG '); super.log(text, debug); } table(header, data, debug) { this._append(`${JSON.stringify(header)}${JSON.stringify(data)}`, 'TABL'); super.table(header, data, debug); } registryResponse(response, debug) { this._append(`${JSON.stringify(response)}`, 'REG '); super.registryResponse(response, debug); } tree(data, debug) { this._append(`${JSON.stringify(data)}`, 'TREE'); super.tree(data, debug); } forceStop() { this.log(`Forcing loader stop.`, true); super.forceStop(); } } exports.CliLogFileLogger = CliLogFileLogger;