onRequest method
Implementation
@override
FutureOr<Request> onRequest(Request request) async {
if (level == Level.none) return request;
final http.BaseRequest base = await request.toBaseRequest();
String startRequestMessage = '--> ${base.method} ${base.url.toString()}';
String bodyMessage = '';
if (base is http.Request) {
if (base.body.isNotEmpty) {
bodyMessage = base.body;
if (!_logHeaders) {
startRequestMessage += ' (${base.bodyBytes.length}-byte body)';
}
}
}
// Always start on a new line
_logger.info(ChopperLogRecord('', request: request));
_logger.info(ChopperLogRecord(startRequestMessage, request: request));
if (_logHeaders) {
base.headers.forEach(
(k, v) => _logger.info(ChopperLogRecord('$k: $v', request: request)),
);
if (base.contentLength != null &&
base.headers['content-length'] == null) {
_logger.info(ChopperLogRecord(
'content-length: ${base.contentLength}',
request: request,
));
}
}
if (_logBody && bodyMessage.isNotEmpty) {
_logger.info(ChopperLogRecord('', request: request));
_logger.info(ChopperLogRecord(bodyMessage, request: request));
}
if (_logHeaders || _logBody) {
_logger.info(ChopperLogRecord(
'--> END ${base.method}',
request: request,
));
}
return request;
}