From 199165f307a2d30b2f0028d704a7b1d76c6ce201 Mon Sep 17 00:00:00 2001 From: Yelaman Yelmuratov Date: Tue, 10 Dec 2024 23:36:57 +0500 Subject: [PATCH 1/2] Update talker_http_logger.dart title replaced by key --- packages/talker_http_logger/lib/talker_http_logger.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/talker_http_logger/lib/talker_http_logger.dart b/packages/talker_http_logger/lib/talker_http_logger.dart index 5e0376ee..eda98f77 100644 --- a/packages/talker_http_logger/lib/talker_http_logger.dart +++ b/packages/talker_http_logger/lib/talker_http_logger.dart @@ -78,7 +78,7 @@ class HttpResponseLog extends TalkerLog { AnsiPen get pen => (AnsiPen()..xterm(46)); @override - String get title => TalkerLogType.httpResponse.key; + String get key => TalkerLogType.httpResponse.key; @override String generateTextMessage( From 448793b1fd84c39c8e40823611f98eb39ba6bdee Mon Sep 17 00:00:00 2001 From: Yelaman Yelmuratov Date: Wed, 18 Dec 2024 13:41:26 +0500 Subject: [PATCH 2/2] ! F added http error log --- .../lib/talker_http_logger.dart | 48 +++++++++++++++++-- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/packages/talker_http_logger/lib/talker_http_logger.dart b/packages/talker_http_logger/lib/talker_http_logger.dart index eda98f77..71dff759 100644 --- a/packages/talker_http_logger/lib/talker_http_logger.dart +++ b/packages/talker_http_logger/lib/talker_http_logger.dart @@ -26,7 +26,13 @@ class TalkerHttpLogger extends InterceptorContract { required BaseResponse response, }) async { final message = '${response.request?.url}'; - _talker.logCustom(HttpResponseLog(message, response: response)); + + if (response.statusCode >= 400 && response.statusCode < 600) { + _talker.logCustom(HttpErrorLog(message, response: response)); + } else { + _talker.logCustom(HttpResponseLog(message, response: response)); + } + return response; } } @@ -48,8 +54,7 @@ class HttpRequestLog extends TalkerLog { String get key => TalkerLogType.httpRequest.key; @override - String generateTextMessage( - {TimeFormat timeFormat = TimeFormat.timeAndSeconds}) { + String generateTextMessage({TimeFormat timeFormat = TimeFormat.timeAndSeconds}) { var msg = '[$title] [${request.method}] $message'; final headers = request.headers; @@ -81,8 +86,41 @@ class HttpResponseLog extends TalkerLog { String get key => TalkerLogType.httpResponse.key; @override - String generateTextMessage( - {TimeFormat timeFormat = TimeFormat.timeAndSeconds}) { + String generateTextMessage({TimeFormat timeFormat = TimeFormat.timeAndSeconds}) { + var msg = '[$title] [${response.request?.method}] $message'; + + final headers = response.request?.headers; + + msg += '\nStatus: ${response.statusCode}'; + + try { + if (headers?.isNotEmpty ?? false) { + final prettyHeaders = encoder.convert(headers); + msg += '\nHeaders: $prettyHeaders'; + } + } catch (_) { + // TODO: add handling can`t convert + } + return msg; + } +} + +class HttpErrorLog extends TalkerLog { + HttpErrorLog( + String title, { + required this.response, + }) : super(title); + + final BaseResponse response; + + @override + AnsiPen get pen => AnsiPen()..red(); + + @override + String get key => TalkerLogType.httpError.key; + + @override + String generateTextMessage({TimeFormat timeFormat = TimeFormat.timeAndSeconds}) { var msg = '[$title] [${response.request?.method}] $message'; final headers = response.request?.headers;