UNPKG

instabug-reactnative

Version:

React Native plugin for integrating the Instabug SDK

40 lines (39 loc) 1.81 kB
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 } }