UNPKG

oled-rpi-i2c-bus-async

Version:

Asynchronous NodeJS module for controlling oled devices on the Raspbery Pi (including the SSD1306 and SH1106 OLED screens)

46 lines (35 loc) 1.4 kB
// Centralized logger utility for OLED display drivers // Provides consistent logging across all modules /** * Creates a logger instance with the specified name * @param {string} name - The name to be shown in log messages * @returns {Object} Logger instance with debug, info, warn, and error methods */ export const createLogger = (name) => { // Default log level is info let currentLevel = 'info'; const logger = { // Available log levels in order of verbosity levels: ['debug', 'info', 'warn', 'error', 'silent'], debug: (...args) => currentLevel === 'debug' && console.debug(`[${name} Debug]`, ...args), info: (...args) => ['debug', 'info'].includes(currentLevel) && console.info(`[${name} Info]`, ...args), warn: (...args) => ['debug', 'info', 'warn'].includes(currentLevel) && console.warn(`[${name} Warning]`, ...args), error: (...args) => currentLevel !== 'silent' && console.error(`[${name} Error]`, ...args), // Change the current log level setLevel: (level) => { if (logger.levels.includes(level)) { currentLevel = level; } else { console.warn(`[${name}] Invalid log level: ${level}. Using 'info' instead.`); currentLevel = 'info'; } }, }; return logger; }; // Export a default logger for general use export const logger = createLogger('OLED'); export default logger;