UNPKG

typescript-logging

Version:

Library for logging, written in typescript, can be used by normal es5+ javascript as well.

212 lines 12.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var LoggerOptions_1 = require("../log/LoggerOptions"); var LFService_1 = require("../log/standard/LFService"); var DataStructures_1 = require("../utils/DataStructures"); var LoggerControlImpl = (function () { function LoggerControlImpl() { } LoggerControlImpl.prototype.help = function () { /* tslint:disable:no-console */ console.log(LoggerControlImpl._help); /* tslint:enable:no-console */ }; LoggerControlImpl.prototype.listFactories = function () { var rtSettingsFactories = LoggerControlImpl._getRuntimeSettingsLoggerFactories(); var result = new DataStructures_1.StringBuilder(); result.appendLine("Registered LoggerFactories (index / name)"); for (var i = 0; i < rtSettingsFactories.length; i++) { var rtSettingsFactory = rtSettingsFactories[i]; result.append(" " + i).append(": " + rtSettingsFactory.getName() + "\n"); } /* tslint:disable:no-console */ console.log(result.toString()); /* tslint:enable:no-console */ }; LoggerControlImpl.prototype.showSettings = function (id) { if (id === void 0) { id = "all"; } var result = []; if (id === "all") { var idx_1 = 0; LoggerControlImpl._getRuntimeSettingsLoggerFactories().forEach(function (item) { result.push(new DataStructures_1.TuplePair(idx_1++, item)); }); } else { var settings = LoggerControlImpl._getRuntimeSettingsLoggerFactories(); if (id >= 0 && id < settings.length) { result.push(new DataStructures_1.TuplePair(id, settings[id])); } else { throw new Error("Requested number: " + id + " was not found."); } } for (var _i = 0, result_1 = result; _i < result_1.length; _i++) { var setting = result_1[_i]; /* tslint:disable:no-console */ console.log(" LoggerFactory: " + setting.y.getName() + " (id=" + setting.x + ")"); var logGroupRuntimeSettings = setting.y.getLogGroupRuntimeSettings(); for (var g = 0; g < logGroupRuntimeSettings.length; g++) { var groupSetting = logGroupRuntimeSettings[g]; console.log(" LogGroup: (id=" + g + ")"); console.log(" RegExp: " + groupSetting.logGroupRule.regExp.source); console.log(" Level: " + LoggerOptions_1.LogLevel[groupSetting.level].toString()); console.log(" LoggerType: " + LoggerOptions_1.LoggerType[groupSetting.loggerType].toString()); } /* tslint:enable:no-console */ } }; LoggerControlImpl.prototype.reset = function (idFactory) { if (idFactory === void 0) { idFactory = "all"; } var loggerFactoriesSettings = LoggerControlImpl._getRuntimeSettingsLoggerFactories(); var result = []; if (idFactory === "all") { result = loggerFactoriesSettings; } else { if (idFactory >= 0 && idFactory < loggerFactoriesSettings.length) { result.push(loggerFactoriesSettings[idFactory]); } } result.forEach(function (setting) { /* tslint:disable:no-console */ console.log("Reset all settings for factory " + idFactory); /* tslint:enable:no-console */ var control = new LoggerFactoryControlImpl(setting); control.reset(); }); }; LoggerControlImpl.prototype.getLoggerFactoryControl = function (idFactory) { var loggerFactoriesSettings = LoggerControlImpl._getRuntimeSettingsLoggerFactories(); if (idFactory >= 0 && idFactory < loggerFactoriesSettings.length) { return new LoggerFactoryControlImpl(loggerFactoriesSettings[idFactory]); } throw new Error("idFactory is invalid (less than 0) or non existing id."); }; LoggerControlImpl._getRuntimeSettingsLoggerFactories = function () { return LoggerControlImpl._getSettings().getRuntimeSettingsForLoggerFactories(); }; LoggerControlImpl._getSettings = function () { return LFService_1.LFService.getRuntimeSettings(); }; LoggerControlImpl._help = "\n help(): void\n ** Shows this help.\n\n listFactories(): void\n ** List all registered LoggerFactories with associated log groups with respective ids (ids can be used to target a factory and/or group).\n\n showSettings(idFactory: number | \"all\"): void\n ** Show log group settings for idFactory (use listFactories to find id for a LoggerFactory). If idFactory is \"all\" shows all factories.\n\n getLoggerFactoryControl(idFactory: number): LoggerFactoryControl\n ** Return LoggerFactoryControl when found for given idFactory or throws Error if invalid or null, get the id by using listFactories()\n\n reset(idFactory: number | \"all\"): void\n ** Resets given factory or all factories back to original values.\n"; return LoggerControlImpl; }()); exports.LoggerControlImpl = LoggerControlImpl; var LoggerFactoryControlImpl = (function () { function LoggerFactoryControlImpl(settings) { this._settings = settings; } LoggerFactoryControlImpl.prototype.help = function () { /* tslint:disable:no-console */ console.log(LoggerFactoryControlImpl._help); /* tslint:enable:no-console */ }; LoggerFactoryControlImpl.prototype.example = function () { /* tslint:disable:no-console */ console.log(LoggerFactoryControlImpl._example); /* tslint:enable:no-console */ }; LoggerFactoryControlImpl.prototype.showSettings = function (id) { if (id === void 0) { id = "all"; } var result = new DataStructures_1.StringBuilder(); var logGroupRuntimeSettings = this._settings.getLogGroupRuntimeSettings(); result.appendLine("Registered LogGroups (index / expression)"); for (var i = 0; i < logGroupRuntimeSettings.length; i++) { var logGroupRuntimeSetting = logGroupRuntimeSettings[i]; result.appendLine(" " + i + ": " + logGroupRuntimeSetting.logGroupRule.regExp.source + ", logLevel=" + LoggerOptions_1.LogLevel[logGroupRuntimeSetting.level].toString() + ", showTimestamp=" + logGroupRuntimeSetting.logFormat.showTimeStamp + ", showLoggerName=" + logGroupRuntimeSetting.logFormat.showLoggerName + ", format=" + LoggerOptions_1.DateFormatEnum[logGroupRuntimeSetting.logFormat.dateFormat.formatEnum].toString()); } /* tslint:disable:no-console */ console.log(result.toString()); /* tslint:enable:no-console */ }; LoggerFactoryControlImpl.prototype.change = function (settings) { var logGroupRuntimeSettings = this._getLogGroupRunTimeSettingsFor(settings.group); var logLevel = null; var formatEnum = null; var showLoggerName = null; var showTimestamp = null; var result = null; var addResult = function (value) { if (result !== null) { result += ", "; } if (result === null) { result = value; } else { result += value; } }; if (typeof settings.logLevel === "string") { logLevel = LoggerOptions_1.LogLevel.fromString(settings.logLevel); addResult("logLevel=" + settings.logLevel); } if (typeof settings.logFormat === "string") { formatEnum = LoggerOptions_1.DateFormatEnum.fromString(settings.logFormat); addResult("logFormat=" + settings.logFormat); } if (typeof settings.showLoggerName === "boolean") { showLoggerName = settings.showLoggerName; addResult("showLoggerName=" + settings.showLoggerName); } if (typeof settings.showTimestamp === "boolean") { showTimestamp = settings.showTimestamp; addResult("showTimestamp=" + settings.showTimestamp); } logGroupRuntimeSettings.forEach(function (s) { if (logLevel !== null) { s.level = logLevel; } if (formatEnum !== null) { s.logFormat.dateFormat.formatEnum = formatEnum; } if (showTimestamp !== null) { s.logFormat.showTimeStamp = showTimestamp; } if (showLoggerName !== null) { s.logFormat.showLoggerName = showLoggerName; } }); /* tslint:disable:no-console */ console.log("Applied changes: " + result + " to log groups '" + settings.group + "'."); /* tslint:enable:no-console */ }; LoggerFactoryControlImpl.prototype.reset = function (idGroup) { if (idGroup === void 0) { idGroup = "all"; } var settings = this._getLogGroupRunTimeSettingsFor(idGroup); for (var _i = 0, settings_1 = settings; _i < settings_1.length; _i++) { var setting = settings_1[_i]; setting.level = setting.logGroupRule.level; setting.logFormat.showTimeStamp = setting.logGroupRule.logFormat.showTimeStamp; setting.logFormat.showLoggerName = setting.logGroupRule.logFormat.showLoggerName; setting.logFormat.dateFormat.formatEnum = setting.logGroupRule.logFormat.dateFormat.formatEnum; } /* tslint:disable:no-console */ console.log("Reset all settings for group " + idGroup); /* tslint:enable:no-console */ }; LoggerFactoryControlImpl.prototype._getLogGroupRunTimeSettingsFor = function (idGroup) { var settings = []; if (idGroup === "all") { settings = this._settings.getLogGroupRuntimeSettings(); } else { this._checkIndex(idGroup); settings.push(this._settings.getLogGroupRuntimeSettings()[idGroup]); } return settings; }; LoggerFactoryControlImpl.prototype._checkIndex = function (index) { if (index < 0 || index >= this._settings.getLogGroupRuntimeSettings().length) { throw new Error("Invalid index, use listLogGroups to find out a valid one."); } }; LoggerFactoryControlImpl._help = "\n help(): void\n ** Shows this help.\n\n example(): void\n ** Shows an example of usage.\n\n showSettings(id: number | \"all\"): void\n ** Prints settings for given group id, \"all\" for all group.\n\n change(settings: LogGroupControlSettings): void\n ** Changes the current settings for one or all log groups.\n **\n LogGroupControlSettings, properties of object:\n group: number | \"all\"\n ** Apply to specific group, or \"all\".\n ** Required\n\n logLevel: \"Fatal\" | \"Error\" | \"Warn\" | \"Info\" | \"Debug\" | \"Trace\" | undefined\n ** Set log level, undefined will not change the setting.\n ** Optional\n\n logFormat: \"Default\" | \"YearMonthDayTime\" | \"YearDayMonthWithFullTime\" | \"YearDayMonthTime\" | undefined\n ** Set the log format, undefined will not change the setting.\n ** Optional\n\n showTimestamp: boolean | undefined\n ** Whether to show timestamp, undefined will not change the setting.\n ** Optional\n\n showLoggerName: boolean | undefined\n ** Whether to show the logger name, undefined will not change the setting.\n ** Optional\n\n reset(id: number | \"all\"): void\n ** Resets everything to original values, for one specific or for all groups.\n\n help():\n ** Shows this help.\n"; LoggerFactoryControlImpl._example = "\n Examples:\n change({group: \"all\", logLevel: \"Info\"})\n ** Change loglevel to Info for all groups.\n\n change({group: 1, recursive:false, logLevel: \"Warn\"})\n ** Change logLevel for group 1 to Warn.\n\n change({group: \"all\", logLevel: \"Debug\", logFormat: \"YearDayMonthTime\", showTimestamp:false, showLoggerName:false})\n ** Change loglevel to Debug for all groups, apply format, do not show timestamp and logger names.\n"; return LoggerFactoryControlImpl; }()); //# sourceMappingURL=LogGroupControl.js.map