dotfiles/vscode/.vscode/extensions/randomfractalsinc.vscode-data-preview-2.3.0/out/logger.js
Errol Sancaktar ff17c17e23 vscode
2024-06-14 09:31:58 -06:00

86 lines
2.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = exports.LogLevel = void 0;
// supported log levels
var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["Debug"] = 0] = "Debug";
LogLevel[LogLevel["Warn"] = 1] = "Warn";
LogLevel[LogLevel["Info"] = 2] = "Info";
LogLevel[LogLevel["Error"] = 3] = "Error";
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
class Logger {
/**
* Creates new logger instance.
* @param category Logger category, usually the source class name.
* @param logLevel Log level to use or supress logging.
*/
constructor(category, logLevel = LogLevel.Debug) {
this.category = category;
this.logLevel = logLevel;
}
/**
* Logs new message.
* @param logLevel Log message level.
* @param message Log message.
* @param params Log message params, if any.
*/
logMessage(logLevel, message, params = '') {
if (logLevel >= this.logLevel) {
if (params) {
this.log(logLevel, message, params);
}
else {
this.log(logLevel, message);
}
}
}
/**
* Logs new debug message.
* @param message Debug log message.
* @param params Debug log message params, if any.
*/
debug(message, params = '') {
if (this.logLevel <= LogLevel.Debug) {
if (typeof params === 'object') {
params = JSON.stringify(params, null, 2);
}
this.log(LogLevel.Debug, message, params);
}
}
/**
* Logs new error message.
* @param message Error log message.
* @param params Error log message params, if any.
*/
error(message, params = '') {
if (typeof params === 'object') {
params = JSON.stringify(params, null, 2);
}
this.log(LogLevel.Error, message, params);
}
/**
* Logs new message to console based on the specified log level.
* @param logLevel Log message level.
* @param message Log message.
* @param params Log message params, if any.
*/
log(logLevel, message, params = '') {
switch (logLevel) {
case LogLevel.Warn:
console.warn(this.category + message, params);
break;
case LogLevel.Info:
console.info(this.category + message, params);
break;
case LogLevel.Error:
console.error(this.category + message, params);
break;
default: // debug
console.log(this.category + message, params);
break;
}
}
}
exports.Logger = Logger;
//# sourceMappingURL=logger.js.map