generateTextMessage method

  1. @override
String generateTextMessage({
  1. TimeFormat timeFormat = TimeFormat.timeAndSeconds,
})

Internal method that generates a complete message about the event

See examples: TalkerLog -> TalkerLog.generateTextMessage TalkerException -> TalkerException.generateTextMessage TalkerError -> TalkerError.generateTextMessage

Implementation

@override
String generateTextMessage({
  TimeFormat timeFormat = TimeFormat.timeAndSeconds,
}) {
  var msg = '[$title] [${requestOptions.method}] $message';

  final data = requestOptions.data;
  final headers = Map.from(requestOptions.headers);

  try {
    if (settings.printRequestData && data != null) {
      // If data is FormData, convert it to a map for better readability
      if (data is FormData) {
        final formDataMap = <String, dynamic>{};
        for (var field in data.fields) {
          formDataMap[field.key] = field.value;
        }
        for (var file in data.files) {
          formDataMap[file.key] = {
            'filename': file.value.filename,
            'contentType': file.value.contentType.toString(),
            'bytes': file.value.length,
          };
        }

        msg += '\nData: ${_encoder.convert(formDataMap)}';
      } else {
        final prettyData = _encoder.convert(data);
        msg += '\nData: $prettyData';
      }
    }

    if (settings.printRequestHeaders && headers.isNotEmpty) {
      // HTTP headers are case-insensitive by standard
      _replaceHiddenHeaders(headers);

      final prettyHeaders = _encoder.convert(headers);
      msg += '\nHeaders: $prettyHeaders';
    }

    final extra = Map.from(requestOptions.extra);
    if (settings.printRequestExtra && extra.isNotEmpty) {
      final prettyExtra = _encoder.convert(extra);
      msg += '\nExtra: $prettyExtra';
    }
  } catch (_) {
    // TODO: add handling can`t convert
  }
  return msg;
}