@webfaas/webfaas-core
Version:
WebFaaS Framework - Core
108 lines • 3.26 kB
JavaScript
"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