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);
}