UNPKG

ng2-logger

Version:

isomorphic logger for browser/server in typescript

115 lines 4.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const logger_1 = require("./logger"); const level_1 = require("./level"); const display_1 = require("./display"); const include_1 = require("./include"); const helper_1 = require("./helper"); if (helper_1.isNode) { var randomcolor = require('randomcolor'); } class Log { static create(name, ...level) { let 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.levels.length > 0 ? Log.display : undefined); Log.instances[name] = i; } else { i = Log.instances[name]; } return i; } static getRandomColor() { if (helper_1.isNode) { return randomcolor({ luminosity: 'light', count: 10 }); } let letters = '012345'.split(''); let color = '#'; color += letters[Math.round(Math.random() * 5)]; letters = '0123456789ABCDEF'.split(''); for (let i = 0; i < 5; i++) { color += letters[Math.round(Math.random() * 15)]; } if (color === undefined) return this.getRandomColor(); return color; } static display(name, data, incomming, moduleName) { if (!include_1.contain(Log.levels, incomming)) return; if (incomming === level_1.Level.DATA) { display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.DATA, Log.instances[moduleName].fixedWidth); } if (incomming === level_1.Level.ERROR) { display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.ERROR, Log.instances[moduleName].fixedWidth); } if (incomming === level_1.Level.INFO) { display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.INFO, Log.instances[moduleName].fixedWidth); } if (incomming === level_1.Level.WARN) { display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.WARN, Log.instances[moduleName].fixedWidth); } } static onlyLevel(...level) { if (Log._logOnly) { console.error('You should use funcion onlyLevel only once'); return; } if (Log._logOnly) Log._logOnly = true; if (level.length === 0) return; Log.levels = level; } static onlyModules(...modules) { if (Log._logModules) { console.error('You should use funcion onlyModules only once'); return; } if (modules.length === 0) return; Log.modules = modules; Log.muteAllOtherModules(); } static isMutedModule(moduleName) { if (Log.modules.length == 0) return false; if (!include_1.contain(Log.modules, moduleName)) return true; return false; } static muteAllOtherModules() { for (var moduleName in Log.instances) { if (!include_1.contain(Log.modules, moduleName)) Log.instances[moduleName].mute(); } } static setProductionMode() { if (Log.modeIsSet) { console.error('Mode is already set'); return; } if (console !== undefined && console.clear !== undefined) { setTimeout(() => { console.clear(); console.log = () => { }; console.error = () => { }; console.warn = () => { }; console.info = () => { }; }); } 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; exports.Log = Log; //# sourceMappingURL=log.js.map