UNPKG

@bugspotter/sdk

Version:

Professional bug reporting SDK with screenshots, session replay, and automatic error capture for web applications

85 lines (84 loc) 2.33 kB
"use strict"; /** * Centralized logging utility for BugSpotter SDK * Provides configurable logging with support for different log levels */ Object.defineProperty(exports, "__esModule", { value: true }); exports.getLogger = getLogger; exports.configureLogger = configureLogger; exports.createLogger = createLogger; const LOG_LEVELS = { debug: 0, log: 1, warn: 2, error: 3, none: 4, }; class BugSpotterLogger { constructor(config = {}) { var _a, _b, _c; this.enabled = (_a = config.enabled) !== null && _a !== void 0 ? _a : true; this.level = (_b = config.level) !== null && _b !== void 0 ? _b : 'log'; this.prefix = (_c = config.prefix) !== null && _c !== void 0 ? _c : '[BugSpotter]'; } shouldLog(level) { if (!this.enabled) { return false; } return LOG_LEVELS[level] >= LOG_LEVELS[this.level]; } formatMessage(message) { return this.prefix ? `${this.prefix} ${message}` : message; } debug(message, ...args) { if (this.shouldLog('debug')) { console.debug(this.formatMessage(message), ...args); } } log(message, ...args) { if (this.shouldLog('log')) { console.log(this.formatMessage(message), ...args); } } warn(message, ...args) { if (this.shouldLog('warn')) { console.warn(this.formatMessage(message), ...args); } } error(message, ...args) { if (this.shouldLog('error')) { console.error(this.formatMessage(message), ...args); } } configure(config) { if (config.enabled !== undefined) { this.enabled = config.enabled; } if (config.level !== undefined) { this.level = config.level; } if (config.prefix !== undefined) { this.prefix = config.prefix; } } } // Default logger instance const defaultLogger = new BugSpotterLogger(); /** * Get the default logger instance */ function getLogger() { return defaultLogger; } /** * Configure the default logger */ function configureLogger(config) { defaultLogger.configure(config); } /** * Create a new logger instance with custom configuration */ function createLogger(config) { return new BugSpotterLogger(config); }