UNPKG

tsvesync

Version:

A TypeScript library for interacting with VeSync smart home devices

102 lines (101 loc) 2.93 kB
"use strict"; /** * Logger module for VeSync library */ Object.defineProperty(exports, "__esModule", { value: true }); exports.logger = exports.LogLevel = void 0; exports.setLogger = setLogger; exports.resetLogger = resetLogger; exports.getLogger = getLogger; exports.setLogLevel = setLogLevel; exports.getLogLevel = getLogLevel; var LogLevel; (function (LogLevel) { LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG"; LogLevel[LogLevel["INFO"] = 1] = "INFO"; LogLevel[LogLevel["WARN"] = 2] = "WARN"; LogLevel[LogLevel["ERROR"] = 3] = "ERROR"; LogLevel[LogLevel["NONE"] = 4] = "NONE"; })(LogLevel || (exports.LogLevel = LogLevel = {})); class DefaultLogger { constructor() { this.currentLevel = LogLevel.INFO; } setLevel(level) { this.currentLevel = level; } getLevel() { return this.currentLevel; } debug(message, ...args) { if (this.currentLevel <= LogLevel.DEBUG) { console.debug(`[DEBUG] ${message}`, ...args); } } info(message, ...args) { if (this.currentLevel <= LogLevel.INFO) { console.info(`[INFO] ${message}`, ...args); } } warn(message, ...args) { if (this.currentLevel <= LogLevel.WARN) { console.warn(`[WARN] ${message}`, ...args); } } error(message, ...args) { if (this.currentLevel <= LogLevel.ERROR) { console.error(`[ERROR] ${message}`, ...args); } } } // Default logger implementation const defaultLogger = new DefaultLogger(); // Current logger instance let currentLogger = defaultLogger; /** * Set a custom logger implementation * @param customLogger - Custom logger implementation */ function setLogger(customLogger) { currentLogger = customLogger; } /** * Reset to default logger */ function resetLogger() { currentLogger = defaultLogger; } /** * Get the current logger instance */ function getLogger() { return currentLogger; } /** * Set the log level (only works with default logger) * @param level - The log level to set */ function setLogLevel(level) { if (currentLogger === defaultLogger) { currentLogger.setLevel(level); } } /** * Get the current log level (only works with default logger) * @returns The current log level or undefined if using custom logger */ function getLogLevel() { if (currentLogger === defaultLogger) { return currentLogger.getLevel(); } return undefined; } // Export the logger interface for use throughout the application exports.logger = { debug: (message, ...args) => currentLogger.debug(message, ...args), info: (message, ...args) => currentLogger.info(message, ...args), warn: (message, ...args) => currentLogger.warn(message, ...args), error: (message, ...args) => currentLogger.error(message, ...args), setLevel: (level) => setLogLevel(level), getLevel: () => getLogLevel() };