UNPKG

@untools/logger

Version:

An enhanced logger for JavaScript/TypeScript that handles DOM elements and circular references

80 lines (79 loc) 2.43 kB
"use strict"; 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;