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: ${_format(formDataMap)}';
      } else {
        msg += '\nData: ${_format(data)}';
      }
    }

    if (settings.printRequestHeaders && headers.isNotEmpty) {
      // HTTP headers are case-insensitive by standard
      _replaceHiddenHeaders(headers);
      msg += '\nHeaders: ${_format(headers)}';
    }

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