reportWithLevel static method

void reportWithLevel(
  1. String level,
  2. Object error, [
  3. StackTrace? stackTrace,
  4. Map<String, dynamic>? additionalContext,
])

Report an exception with custom severity level

Implementation

static void reportWithLevel(
  String level,
  Object error, [
  StackTrace? stackTrace,
  Map<String, dynamic>? additionalContext,
]) {
  final context = _buildExceptionContext(
    error: error,
    stackTrace: stackTrace,
    additionalContext: additionalContext,
  );

  final logMessage = _formatExceptionMessage(error, context);

  switch (level.toLowerCase()) {
    case 'critical':
      Khadem.logger.critical(
        logMessage,
        context: context,
        stackTrace: stackTrace,
      );
      break;
    case 'error':
      Khadem.logger.error(
        logMessage,
        context: context,
        stackTrace: stackTrace,
      );
      break;
    case 'warning':
      Khadem.logger.warning(
        logMessage,
        context: context,
        stackTrace: stackTrace,
      );
      break;
    case 'info':
      Khadem.logger.info(
        logMessage,
        context: context,
        stackTrace: stackTrace,
      );
      break;
    case 'debug':
      Khadem.logger.debug(
        logMessage,
        context: context,
        stackTrace: stackTrace,
      );
      break;
    default:
      Khadem.logger.error(
        logMessage,
        context: context,
        stackTrace: stackTrace,
      );
  }

  // Send to external service if configured
  _sendToExternalService(error, context, stackTrace);
}