@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
JavaScript
;
/**
* 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);
}