UNPKG

js-console-logger

Version:

A configurable, lightweight, opinionated JavaScript logger.

144 lines (143 loc) 4.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var types_1 = require("./types"); // tslint:disable-next-line:no-empty var noop = function () { }; var loggerConfig = { consoleLevel: types_1.LogLevel.INFO, disableConsole: false, disableReport: true, reportFn: noop, reportLevel: types_1.LogLevel.ERROR, }; var loggerInfo = { debug: { levelCode: 2, levelTagColor: 'green', }, error: { levelCode: 5, levelTagColor: 'red', }, info: { levelCode: 3, levelTagColor: 'cornflowerblue', }, trace: { levelCode: 1, levelTagColor: 'yellow', }, warn: { levelCode: 4, levelTagColor: 'orange', }, }; var logLevels = Object.keys(loggerInfo); var getTagStyle = function (color) { return "background-color: " + color + "; font-size:10px; color: white; padding: 1px 5px;"; }; var consoleLoggerFn = function (level, name, msg, data) { if (data === void 0) { data = ''; } window.console[level]("%c" + level.toUpperCase() + "%c" + name.toUpperCase(), getTagStyle(loggerInfo[level].levelTagColor), getTagStyle('indigo'), msg, data); }; var log = function (level, name, msg, data) { if (data === void 0) { data = ''; } if (logLevels.includes(level)) { var levelCode = loggerInfo[level].levelCode; var isAboveConsoleLevel = loggerInfo[loggerConfig.consoleLevel].levelCode <= levelCode; var shouldConsole = !loggerConfig.disableConsole && isAboveConsoleLevel; var isAboveReportLevel = loggerInfo[loggerConfig.reportLevel].levelCode <= levelCode; var shouldReport = !loggerConfig.disableReport && isAboveReportLevel; var obj = { data: data, level: level, msg: msg, name: name, }; if (shouldConsole) { consoleLoggerFn(level, name, msg, data); } if (shouldReport) { loggerConfig.reportFn(obj); } } /* Not reachable in TS else { consoleLogger.error('Logger', `Invalid logger call: ${level}`, {}); } */ }; var getConsoleLevel = function () { return loggerConfig.consoleLevel; }; var getReportLevel = function () { return loggerConfig.reportLevel; }; var getDisableConsole = function () { return loggerConfig.disableConsole; }; var getDisableReport = function () { return loggerConfig.disableReport; }; var setConsoleLevel = function (level) { if (logLevels.includes(level)) { loggerConfig.consoleLevel = level; log(types_1.LogLevel.INFO, 'Logger', "Log level set to " + level); } /* Not reachable in TS else { log(LogLevel.ERROR, 'Logger', `Invalid level: ${level}`); } */ return getConsoleLevel(); }; var setReportLevel = function (level) { if (logLevels.includes(level)) { loggerConfig.reportLevel = level; log(types_1.LogLevel.INFO, 'Logger', "Log level set to " + level); } /* Not reachable in TS else { log(LogLevel.ERROR, 'Logger', `Invalid level: ${level}`); } */ return getReportLevel(); }; var setDisableConsole = function (flag) { loggerConfig.disableConsole = flag; return getDisableConsole(); }; var setDisableReport = function (flag) { loggerConfig.disableReport = flag; return getDisableReport(); }; var setReportFn = function (fn) { loggerConfig.reportFn = fn; }; exports.consoleConfig = { getConsoleLevel: getConsoleLevel, getDisableConsole: getDisableConsole, getDisableReport: getDisableReport, getReportLevel: getReportLevel, setConsoleLevel: setConsoleLevel, setDisableConsole: setDisableConsole, setDisableReport: setDisableReport, setReportFn: setReportFn, setReportLevel: setReportLevel, }; var consoleLogger = { debug: function (name, msg, data) { if (data === void 0) { data = ''; } return log(types_1.LogLevel.DEBUG, name, msg, data); }, error: function (name, msg, data) { if (data === void 0) { data = ''; } return log(types_1.LogLevel.ERROR, name, msg, data); }, info: function (name, msg, data) { if (data === void 0) { data = ''; } return log(types_1.LogLevel.INFO, name, msg, data); }, trace: function (name, msg, data) { if (data === void 0) { data = ''; } return log(types_1.LogLevel.TRACE, name, msg, data); }, warn: function (name, msg, data) { if (data === void 0) { data = ''; } return log(types_1.LogLevel.WARN, name, msg, data); }, }; if (window) { window.logger = consoleLogger; } exports.default = consoleLogger;