ng2-logger
Version:
isomorphic logger for browser/server in typescript
144 lines • 5.21 kB
JavaScript
;
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