UNPKG

jumbo-core

Version:

Modern lightweight fast enterprise level MVW framework for Node.js

94 lines 3.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const $fs = require("fs"); const $path = require("path"); const $cluster = require("cluster"); const Cluster_1 = require("../cluster/Cluster"); const $newLine = require("os").EOL; const $cfg = require("jumbo-core/config-options").Configurations; const config = Jumbo.config; var LogTypes; (function (LogTypes) { LogTypes["Http"] = "http"; LogTypes["Std"] = "std"; LogTypes["Start"] = "start"; })(LogTypes = exports.LogTypes || (exports.LogTypes = {})); var LogLevels; (function (LogLevels) { LogLevels[LogLevels["Error"] = 1] = "Error"; LogLevels[LogLevels["Warning"] = 2] = "Warning"; LogLevels[LogLevels["Normal"] = 3] = "Normal"; LogLevels[LogLevels["Talkative"] = 4] = "Talkative"; LogLevels[LogLevels["TalkativeCluster"] = 5] = "TalkativeCluster"; })(LogLevels = exports.LogLevels || (exports.LogLevels = {})); class Log { static get LogLevels() { return LogLevels; } static get LogTypes() { return LogTypes; } static error(message, type = undefined, level = LogLevels.Error) { Log.line("ERROR: " + message, type, level); } static warning(message, type = undefined, level = LogLevels.Warning) { Log.line("WARNING: " + message, type, level); } static line(message, type = LogTypes.Std, level = LogLevels.Normal) { if (!Jumbo.config.log.enabled) { return; } if (level <= Log.level) { if ($cluster.isMaster) { Log.logFunction(message, type); } else { message = "[Worker " + $cluster.worker.id + "] " + message; Cluster_1.cluster.invoke(Cluster_1.ClusterCommands.Log, { message: message, type: type, level: level }); } } } static curTime() { let d = new Date(); function edit(a) { return a.toString().length === 1 ? ("0" + a) : a; } return d.getFullYear() + "-" + edit(d.getMonth()) + "-" + edit(d.getDate()) + " " + edit(d.getHours()) + ":" + edit(d.getMinutes()) + ":" + edit(d.getSeconds()); } static init() { if (config.log.enabled === true) { if ($fs.lstatSync(Log.dir).isDirectory()) { this.which = this.curTime().replace(/[: ]/g, "-"); this.isInitiated = true; Cluster_1.cluster.on(Cluster_1.ClusterCommands.Log, (event) => { Log.line(event.data.message, event.data.type, event.data.level); }); } } } } Log.isInitiated = false; Log.dir = Jumbo.LOG_DIR; Log.which = null; Log.level = config.log.level; Log.logFunction = function (message, type) { message = Log.curTime() + " [" + type.toUpperCase() + "] " + message; if (Jumbo.config.deployment == $cfg.Deployment.Development) { console.log(message); } if (Log.isInitiated) { $fs.appendFile($path.resolve(Log.dir, type + "-" + Log.which + ".log"), message + $newLine, function (err) { if (err != null) { console.error("Error ocurs while writing into log.\n" + err); } }); } }; exports.Log = Log; Log.init(); //# sourceMappingURL=Log.js.map