trm-commons
Version:
TRM (Transport Request Manager) Shared library
93 lines (92 loc) • 3.14 kB
JavaScript
;
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;