generateTextMessage method
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,
}) {
final StringBuffer msg = StringBuffer();
msg.write('[$title]');
msg.write(' [${response.request?.method}]');
msg.writeln(' $message');
final String? data = switch (response) {
Response res => res.body,
_ => null,
};
msg.writeln('Status: ${response.statusCode}');
if (settings.printResponseTime) {
final int? responseTime = getResponseTime(response.headers) ??
getResponseTime(response.request?.headers);
if (responseTime != null) {
msg.writeln('Time: $responseTime ms');
}
}
if (settings.printResponseMessage && response.reasonPhrase != null) {
msg.writeln('Message: ${response.reasonPhrase}');
}
if (settings.printResponseHeaders && response.headers.isNotEmpty) {
try {
msg.writeln('Headers: ${convert(response.headers)}');
} catch (error, stackTrace) {
msg.writeln(
'Headers: <failed to convert headers: $error\nstackTrace: $stackTrace>',
);
}
}
if (settings.printResponseRedirects && response.isRedirect) {
msg.writeln('Redirect: ${response.isRedirect}');
}
if (settings.printResponseData && (data?.isNotEmpty ?? false)) {
try {
msg.writeln('Data: ${convert(jsonDecode(data!))}');
} on FormatException {
msg.writeln('Data: ${convert(data)}');
} catch (error, stackTrace) {
msg.writeln(
'Data: <failed to convert data: $error\nstackTrace: $stackTrace>',
);
}
}
return msg.toString().trimRight();
}