UNPKG

digitaltwin-core

Version:

Minimalist framework to collect and handle data in a Digital Twin project

92 lines 3.15 kB
/** * Enumeration of available logging levels. * * Levels are ordered by severity, with lower numbers being more verbose. * * @enum {number} */ export var LogLevel; (function (LogLevel) { /** Debug messages - most verbose, includes internal state information */ LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG"; /** Informational messages - general application flow */ LogLevel[LogLevel["INFO"] = 1] = "INFO"; /** Warning messages - potential issues that don't prevent operation */ LogLevel[LogLevel["WARN"] = 2] = "WARN"; /** Error messages - failures that affect functionality */ LogLevel[LogLevel["ERROR"] = 3] = "ERROR"; /** Silent mode - no logging output */ LogLevel[LogLevel["SILENT"] = 4] = "SILENT"; })(LogLevel || (LogLevel = {})); /** * Simple logger class for Digital Twin framework components. * * Provides structured logging with component identification and configurable levels. * Automatically adjusts log level based on environment (silent in tests). * * @class Logger * * @example * ```typescript * const logger = new Logger('MyCollector', LogLevel.DEBUG) * logger.info('Starting data collection') * logger.error('Failed to connect', error) * ``` */ export class Logger { /** * Creates a new logger instance for a component. * * @param {string} componentName - Name of the component for log prefixing * @param {LogLevel} level - Minimum log level to output (defaults based on NODE_ENV) */ constructor(componentName, level = process.env.NODE_ENV === 'test' ? LogLevel.ERROR : LogLevel.INFO) { this.componentName = componentName; this.level = level; } /** * Logs debug information for development and troubleshooting. * * @param {string} message - Debug message * @param {any} data - Optional additional data to log */ debug(message, data) { if (this.level <= LogLevel.DEBUG) { console.log(`[${this.componentName}] DEBUG: ${message}`, data || ''); } } /** * Logs informational messages about normal operation. * * @param {string} message - Information message * @param {any} data - Optional additional data to log */ info(message, data) { if (this.level <= LogLevel.INFO) { console.log(`[${this.componentName}] ${message}`, data || ''); } } /** * Logs warning messages about potential issues. * * @param {string} message - Warning message * @param {any} data - Optional additional data to log */ warn(message, data) { if (this.level <= LogLevel.WARN) { console.warn(`[${this.componentName}] WARN: ${message}`, data || ''); } } /** * Logs error messages about failures and exceptions. * * @param {string} message - Error message * @param {any} error - Optional error object or additional data */ error(message, error) { if (this.level <= LogLevel.ERROR) { console.error(`[${this.componentName}] ERROR: ${message}`, error || ''); } } } //# sourceMappingURL=logger.js.map