UNPKG

@webfaas/webfaas-core

Version:

WebFaaS Framework - Core

108 lines 3.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Log = void 0; const path = require("path"); const ILog_1 = require("./ILog"); const DefaultWriteLog_1 = require("./DefaultWriteLog"); const rootPath = process.cwd(); /** * Log */ class Log { /** * * @param writeLog class responsible for saving the log */ constructor(writeLog) { if (writeLog) { this.currentWriteLog = writeLog; } else { this.currentWriteLog = new DefaultWriteLog_1.DefaultWriteLog(); } this.currentLevel = ILog_1.LogLevelEnum.INFO; } parseLog(level, method, code, message, detail, filename, invokeContext) { var logObj = {}; logObj.level = level; logObj.date = new Date(); logObj.method = method; logObj.code = code; logObj.message = message; if (detail) { logObj.detail = detail; } if (filename) { if (filename.indexOf(path.sep) === -1) { logObj.filename = filename; } else { logObj.filename = path.relative(process.cwd(), filename); } } if (invokeContext) { logObj.invokeContext = invokeContext; } return logObj; } /** * change level of log * @param level level of log */ changeCurrentLevel(level) { this.currentLevel = ILog_1.parseLogLevel(level); } /** * write log * @param level of log * @param method name of method * @param code code * @param message message * @param detail generic object detail * @param filename name of file * @param invokeContext context invoke */ write(level, method, code, message, detail, filename, invokeContext) { try { if ((this.currentLevel !== ILog_1.LogLevelEnum.OFF) && (this.currentLevel >= level)) { var logData; logData = this.parseLog(level, method, code, message, detail, filename, invokeContext); this.currentWriteLog.write(logData); } else { //not write return; } } catch (errTry) { console.error(errTry); } } /** * write log error * @param method name of method * @param error object error * @param detail generic object detail * @param filename name of file * @param invokeContext context invoke */ writeError(method, error, detail, filename, invokeContext) { try { if ((this.currentLevel !== ILog_1.LogLevelEnum.OFF) && (this.currentLevel >= ILog_1.LogLevelEnum.ERROR)) { var logData; logData = this.parseLog(ILog_1.LogLevelEnum.ERROR, method, error.name, error.message, detail, filename, invokeContext); logData.stack = error.stack; this.currentWriteLog.write(logData); } else { //not write return; } } catch (errTry) { console.error(errTry); } } } exports.Log = Log; //# sourceMappingURL=Log.js.map