UNPKG

@sailboat-computer/data-storage

Version:

Shared data storage library for sailboat computer v3

89 lines 2.34 kB
"use strict"; /** * Logger utility for the data storage package */ Object.defineProperty(exports, "__esModule", { value: true }); exports.createLogger = exports.ConsoleLogger = void 0; /** * Console logger implementation */ class ConsoleLogger { /** * Create a new console logger * @param component Component name * @param options Logger options */ constructor(component, options = {}) { this.levelPriority = { debug: 0, info: 1, warn: 2, error: 3 }; this.component = component; this.level = options.level || 'info'; } /** * Log a debug message * @param message Message to log * @param meta Additional metadata */ debug(message, meta) { this.log('debug', message, meta); } /** * Log an info message * @param message Message to log * @param meta Additional metadata */ info(message, meta) { this.log('info', message, meta); } /** * Log a warning message * @param message Message to log * @param meta Additional metadata */ warn(message, meta) { this.log('warn', message, meta); } /** * Log an error message * @param message Message to log * @param meta Additional metadata */ error(message, meta) { this.log('error', message, meta); } /** * Log a message * @param level Log level * @param message Message to log * @param meta Additional metadata */ log(level, message, meta) { if (this.levelPriority[level] < this.levelPriority[this.level]) { return; } const timestamp = new Date().toISOString(); const formattedMessage = `[${timestamp}] [${level.toUpperCase()}] [${this.component}] ${message}`; if (meta) { console[level](formattedMessage, meta); } else { console[level](formattedMessage); } } } exports.ConsoleLogger = ConsoleLogger; /** * Create a new logger * @param component Component name * @param options Logger options * @returns Logger */ function createLogger(component, options = {}) { return new ConsoleLogger(component, options); } exports.createLogger = createLogger; //# sourceMappingURL=logger.js.map