requestLogger function
Middleware that logs requests using the provided logger.
Implementation
Middleware requestLogger(AstraLogger logger) {
return (Handler innerHandler) {
return (Request request) async {
final startTime = DateTime.now();
try {
final response = await innerHandler(request);
final duration = DateTime.now().difference(startTime);
logger.info(
'${request.method} ${request.url.path} [${response.statusCode}] (${duration.inMilliseconds}ms)',
);
return response;
} catch (error, stackTrace) {
final duration = DateTime.now().difference(startTime);
logger.error(
'${request.method} ${request.url.path} [ERROR] (${duration.inMilliseconds}ms)',
error,
stackTrace,
);
rethrow;
}
};
};
}