instabug-reactnative
Version:
React Native plugin for integrating the Instabug SDK
40 lines (39 loc) • 1.81 kB
JavaScript
import { InstabugRNConfig } from './config';
import { LogLevel } from './Enums';
export class Logger {
static shouldLog(level) {
const currentLevel = InstabugRNConfig.debugLogsLevel;
// Return true if the current log level is equal to or more verbose than the requested level
const logLevelHierarchy = {
[LogLevel.verbose]: 3,
[LogLevel.debug]: 2,
[LogLevel.error]: 1,
[LogLevel.none]: 0,
};
return logLevelHierarchy[currentLevel] >= logLevelHierarchy[level];
}
// General logging method that takes a logging function as an argument
static logMessage(level, logMethod, message, ...optionalParams) {
if (this.shouldLog(level)) {
logMethod(message, ...optionalParams);
}
}
static error(message, ...optionalParams) {
this.logMessage(LogLevel.error, console.error, message, ...optionalParams); // Pass console.error for errors
}
static info(message, ...optionalParams) {
this.logMessage(LogLevel.verbose, console.info, message, ...optionalParams); // Pass console.info for info
}
static log(message, ...optionalParams) {
this.logMessage(LogLevel.verbose, console.log, message, ...optionalParams); // Default log method
}
static warn(message, ...optionalParams) {
this.logMessage(LogLevel.debug, console.warn, message, ...optionalParams); // Use console.warn for debug
}
static trace(message, ...optionalParams) {
this.logMessage(LogLevel.debug, console.trace, message, ...optionalParams); // Use console.trace for debugging
}
static debug(message, ...optionalParams) {
this.logMessage(LogLevel.debug, console.debug, message, ...optionalParams); // Use console.debug for debug logs
}
}