UNPKG

ng2-logger

Version:

isomorphic logger for browser/server in typescript

144 lines 5.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var logger_1 = require("./logger"); var level_1 = require("./level"); var display_1 = require("./display"); var include_1 = require("./include"); var helper_1 = require("./helper"); if (helper_1.isNode) { //#region @backend var randomcolor = require('randomcolor'); //#endregion } var Log = /** @class */ (function () { function Log() { } Log.create = function (name) { var level = []; for (var _i = 1; _i < arguments.length; _i++) { level[_i - 1] = arguments[_i]; } var i; if (Log.instances[name] === undefined) { i = new logger_1.Logger(name, Log.getRandomColor(), Log.isDevelopmentMode, level, Log.isMutedModule(name), Log.levels.length > 0 ? Log.fixedWidth : undefined); Log.instances[name] = i; } else { i = Log.instances[name]; } return i; }; Log.getRandomColor = function () { if (helper_1.isNode) { //#region @backend return randomcolor({ luminosity: 'light', count: 10 }); //#endregion } var letters = '012345'.split(''); var color = '#'; color += letters[Math.round(Math.random() * 5)]; letters = '0123456789ABCDEF'.split(''); for (var i = 0; i < 5; i++) { color += letters[Math.round(Math.random() * 15)]; } if (color === undefined) return this.getRandomColor(); return color; }; Log.display = function (name, data, incomming, moduleName) { if (!include_1.contain(Log.levels, incomming)) return; if (incomming === level_1.Level.DATA) { display_1.Display.msg(name, data, moduleName, Log.instances[moduleName].color, level_1.Level.DATA, Log.instances[moduleName].fixedWidth); } if (incomming === level_1.Level.ERROR) { display_1.Display.msg(name, data, moduleName, Log.instances[moduleName].color, level_1.Level.ERROR, Log.instances[moduleName].fixedWidth); } if (incomming === level_1.Level.INFO) { display_1.Display.msg(name, data, moduleName, Log.instances[moduleName].color, level_1.Level.INFO, Log.instances[moduleName].fixedWidth); } if (incomming === level_1.Level.WARN) { display_1.Display.msg(name, data, moduleName, Log.instances[moduleName].color, level_1.Level.WARN, Log.instances[moduleName].fixedWidth); } }; Log.onlyLevel = function () { var level = []; for (var _i = 0; _i < arguments.length; _i++) { level[_i] = arguments[_i]; } if (Log._logOnly) { throw '[ng2-logger] You should use funcion onlyLevel only once'; } if (!Log._logOnly) { Log._logOnly = true; } Log.levels = Array.isArray(level) ? level : [level]; for (var logName in Log.instances) { if (Log.instances.hasOwnProperty(logName)) { var element = Log.instances[logName]; element['allowed'] = Log.levels; } } }; Log.onlyModules = function () { var modules = []; for (var _i = 0; _i < arguments.length; _i++) { modules[_i] = arguments[_i]; } if (Log._logModules) { throw '[ng2-logger] You should use funcion onlyModules only once'; } if (!Log._logModules) { Log._logModules = true; } if (modules.length === 0) return; Log.modules = modules; // console.log('only log this', Log.modules) Log.muteAllOtherModules(); }; Log.isMutedModule = function (moduleName) { if (Log.modules.length == 0) return false; if (!include_1.contain(Log.modules, moduleName)) return true; return false; }; Log.muteAllOtherModules = function () { for (var moduleName in Log.instances) { if (!include_1.contain(Log.modules, moduleName)) Log.instances[moduleName].mute(); } }; Log.setProductionMode = function () { if (Log.modeIsSet) { Log.modeIsSet = false; throw '[ng2-logger] Production mode is already set'; } else { Log.modeIsSet = true; setTimeout(function () { if (Log.modeIsSet && console !== undefined && console.clear !== undefined) { console.clear(); console.log = function () { }; console.error = function () { }; console.warn = function () { }; console.info = function () { }; } }); logger_1.Logger.isProductionMode = true; Log.isDevelopmentMode = false; } }; Log.instances = {}; Log.fixedWidth = 0; Log._logOnly = false; Log.levels = []; Log._logModules = false; Log.modules = []; Log.isDevelopmentMode = true; Log.modeIsSet = false; return Log; }()); exports.Log = Log; //# sourceMappingURL=log.js.map