@untools/logger
Version:
An enhanced logger for JavaScript/TypeScript that handles DOM elements and circular references
80 lines (79 loc) • 2.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = exports.LogLevel = void 0;
/**
* Log levels for the logger.
*/
var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
LogLevel[LogLevel["WARN"] = 1] = "WARN";
LogLevel[LogLevel["INFO"] = 2] = "INFO";
LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
/**
* Simple logger utility for the PostMessageHub.
* Supports different log levels and formatting.
*/
class Logger {
constructor(namespace, logLevel = LogLevel.INFO, enabled = true) {
this.namespace = namespace;
this.logLevel = logLevel;
this.enabled = enabled;
}
/**
* Sets the log level.
* @param {LogLevel} level - The new log level
*/
setLogLevel(level) {
this.logLevel = level;
}
/**
* Enables or disables logging.
* @param {boolean} enabled - Whether to enable logging
*/
setEnabled(enabled) {
this.enabled = enabled;
}
/**
* Logs an error message.
* @param {string} message - The message to log
* @param {any} [data] - Optional data to include
*/
error(message, data) {
if (this.enabled && this.logLevel >= LogLevel.ERROR) {
console.error(`[${this.namespace}] ERROR:`, message, data || "");
}
}
/**
* Logs a warning message.
* @param {string} message - The message to log
* @param {any} [data] - Optional data to include
*/
warn(message, data) {
if (this.enabled && this.logLevel >= LogLevel.WARN) {
console.warn(`[${this.namespace}] WARN:`, message, data || "");
}
}
/**
* Logs an info message.
* @param {string} message - The message to log
* @param {any} [data] - Optional data to include
*/
info(message, data) {
if (this.enabled && this.logLevel >= LogLevel.INFO) {
console.info(`[${this.namespace}] INFO:`, message, data || "");
}
}
/**
* Logs a debug message.
* @param {string} message - The message to log
* @param {any} [data] - Optional data to include
*/
debug(message, data) {
if (this.enabled && this.logLevel >= LogLevel.DEBUG) {
console.log(`[${this.namespace}] DEBUG:`, message, data || "");
}
}
}
exports.Logger = Logger;