typescript-logging
Version:
Library for logging, written in typescript, can be used by normal es5+ javascript as well.
212 lines • 12.4 kB
JavaScript
"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