@m92/express-utils
Version:
Utility Module for Express Framework
135 lines (99 loc) • 3.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _util = _interopRequireDefault(require("util"));
var _autoBind = _interopRequireDefault(require("auto-bind"));
var _BaseLogCreator = _interopRequireDefault(require("./classes/BaseLogCreator"));
var _ReqResLogCreator = _interopRequireDefault(require("./classes/ReqResLogCreator"));
var _CodeFlowLogCreator = _interopRequireDefault(require("./classes/CodeFlowLogCreator"));
var _LOGGER = _interopRequireDefault(require("./constants/LOGGER"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var {
LEVELS,
MODES
} = _LOGGER.default;
class Logger {
constructor(CONFIG, CONSTANTS, thisExpressUtils) {
this.CONFIG = CONFIG;
this.CONSTANTS = CONSTANTS;
var BaseLog = new _BaseLogCreator.default(CONFIG, CONSTANTS, thisExpressUtils);
this.ReqResLog = new _ReqResLogCreator.default(BaseLog, thisExpressUtils);
this.CodeFlowLog = new _CodeFlowLogCreator.default(BaseLog);
(0, _autoBind.default)(this);
this._setConsoleReference();
} // Custom logs
log(level, message, data) {
var {
CONFIG,
CodeFlowLog
} = this;
var {
LOGGER_CODE_FLOW_LOG_ENABLED
} = CONFIG;
if (!LOGGER_CODE_FLOW_LOG_ENABLED) {
return;
}
message = _util.default.format(message);
var codeFlowLog = new CodeFlowLog(level, message, data);
this._dispatch(codeFlowLog);
}
fatal(message, data) {
this.log(LEVELS.FATAL, message, data);
}
error(message, data) {
this.log(LEVELS.ERROR, message, data);
}
warn(message, data) {
this.log(LEVELS.WARN, message, data);
}
info(message, data) {
this.log(LEVELS.INFO, message, data);
}
debug(message, data) {
this.log(LEVELS.DEBUG, message, data);
}
trace(message, data) {
this.log(LEVELS.TRACE, message, data);
}
_dispatch(logObject) {
var {
CONFIG
} = this;
switch (CONFIG.LOGGER_MODE) {
case MODES.CONSOLE:
logObject.print();
break;
case MODES.CONSOLE_VERBOSE:
logObject.print(true);
break;
}
} // Reference to default 'console' methods
_setConsoleReference() {
this.consoleLog = console.log;
this.consoleError = console.error;
this.consoleWarn = console.warn;
this.consoleInfo = console.info;
this.consoleDebug = console.debug;
} // Handle Console logs
_overrideConsole() {
var _this = this;
console.log = function () {
return _this.log(LEVELS.INFO, _util.default.format(...arguments));
};
console.error = function () {
return _this.log(LEVELS.ERROR, _util.default.format(...arguments));
};
console.warn = function () {
return _this.log(LEVELS.WARN, _util.default.format(...arguments));
};
console.info = function () {
return _this.log(LEVELS.INFO, _util.default.format(...arguments));
};
console.debug = function () {
return _this.log(LEVELS.DEBUG, _util.default.format(...arguments));
};
}
}
exports.default = Logger;