import 'package:dart_frog/dart_frog.dart';
import 'package:logging/logging.dart';

final log = Logger('ServerLogger');

Middleware loggerMiddleware() {
  return (Handler handler) {
    return (RequestContext context) async {
      final request = context.request;
      final startTime = DateTime.now();

      final response = await handler(context);

      final duration = DateTime.now().difference(startTime);

      log.info(
        '${request.method.name} ${request.uri.path} '
        '${response.statusCode} ${duration.inMilliseconds}ms',
      );

      return response;
    };
  };
}