send method

  1. @override
Future<void> send(
  1. LogRecord error,
  2. List<LogRecord> contextLogs,
  3. Map<String, String> metadata
)
override

Implementation

@override
Future<void> send(
  LogRecord error,
  List<LogRecord> contextLogs,
  Map<String, String> metadata,
) async {
  var payload = formatter.format(error, contextLogs, metadata);
  if (payloadBuilder != null) payload = payloadBuilder!(payload);
  if (url == demoUrl) {
    // Demo mode: print the formatted payload to the console.
    print('[HttpErrorExporter demo] ${jsonEncode(payload)}');
    return;
  }
  final uri = Uri.parse(url);
  final headers = {
    'Content-Type': 'application/json',
    ...?headersBuilder?.call(),
  };
  try {
    await http.post(uri, headers: headers, body: jsonEncode(payload));
  } catch (e) {
    // Errors during delivery must not propagate and crash the application.
    print('Failed to send error report to $url: $e');
  }
}