Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions packages/talker_dio_logger/lib/dio_logs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ class DioRequestLog extends TalkerLog {
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
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class TalkerDioLogger extends Interceptor {
bool? printErrorMessage,
bool? printRequestData,
bool? printRequestHeaders,
bool? printRequestExtra,
AnsiPen? requestPen,
AnsiPen? responsePen,
AnsiPen? errorPen,
Expand All @@ -51,6 +52,7 @@ class TalkerDioLogger extends Interceptor {
printErrorMessage: printErrorMessage,
printResponseHeaders: printResponseHeaders,
printResponseMessage: printResponseMessage,
printRequestExtra: printRequestExtra,
requestPen: requestPen,
responsePen: responsePen,
errorPen: errorPen,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class TalkerDioLoggerSettings {
this.printErrorMessage = true,
this.printRequestData = true,
this.printRequestHeaders = false,
this.printRequestExtra = false,
this.hiddenHeaders = const <String>{},
this.requestPen,
this.responsePen,
Expand Down Expand Up @@ -61,6 +62,9 @@ class TalkerDioLoggerSettings {
/// Print [request.headers] if true
final bool printRequestHeaders;

/// Print [request.extra] if true
final bool printRequestExtra;

/// Field to set custom http request console logs color
///```
///// Red color
Expand Down Expand Up @@ -120,6 +124,7 @@ class TalkerDioLoggerSettings {
bool? printErrorMessage,
bool? printRequestData,
bool? printRequestHeaders,
bool? printRequestExtra,
AnsiPen? requestPen,
AnsiPen? responsePen,
AnsiPen? errorPen,
Expand All @@ -139,6 +144,7 @@ class TalkerDioLoggerSettings {
printErrorMessage: printErrorMessage ?? this.printErrorMessage,
printRequestData: printRequestData ?? this.printRequestData,
printRequestHeaders: printRequestHeaders ?? this.printRequestHeaders,
printRequestExtra: printRequestExtra ?? this.printRequestExtra,
requestPen: requestPen ?? this.requestPen,
responsePen: responsePen ?? this.responsePen,
errorPen: errorPen ?? this.errorPen,
Expand Down
50 changes: 48 additions & 2 deletions packages/talker_dio_logger/test/logger_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ void main() {

test('onResponse method should log http response headers', () {
final logger = TalkerDioLogger(
talker: talker,
settings: TalkerDioLoggerSettings(printResponseHeaders: true));
talker: talker,
settings: TalkerDioLoggerSettings(printResponseHeaders: true),
);

final options = RequestOptions(path: '/test');
final response = Response(
Expand Down Expand Up @@ -94,5 +95,50 @@ void main() {
' "lastHeader": "lastHeaderValue"\n'
'}');
});

test('onRequest method should log extra params if enabled', () {
final logger = TalkerDioLogger(
talker: talker,
settings: TalkerDioLoggerSettings(printRequestExtra: true),
);
const extra = {
"key1": "value",
"key2": 99,
"key3": {"nestedKey": "nestedValue"},
"key4": [1, 2, 3],
"key5": true,
"key6": null,
"key7": 3.14,
"key8": ["array", "of", "strings"],
};
final options = RequestOptions(path: '/test', extra: extra);
logger.onRequest(options, RequestInterceptorHandler());
final message = talker.history.last.generateTextMessage();
expect(
message,
contains(
'Extra: {\n'
' "key1": "value",\n'
' "key2": 99,\n'
' "key3": {\n'
' "nestedKey": "nestedValue"\n'
' },\n'
' "key4": [\n'
' 1,\n'
' 2,\n'
' 3\n'
' ],\n'
' "key5": true,\n'
' "key6": null,\n'
' "key7": 3.14,\n'
' "key8": [\n'
' "array",\n'
' "of",\n'
' "strings"\n'
' ]\n'
'}',
),
);
});
});
}