From c7ed6aafe3e3ae1f2fdb4beac534223fede1ca0a Mon Sep 17 00:00:00 2001 From: ImBenji Date: Tue, 5 Aug 2025 01:15:12 +0100 Subject: [PATCH] Add request logging middleware to track client requests --- lib/main.dart | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/main.dart b/lib/main.dart index 1376a99..f8e331e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -11,6 +11,24 @@ import 'package:waylume_server/services/wireguard_service.dart'; import 'package:waylume_server/core/utils.dart'; import 'package:waylume_server/web/peer_routes.dart'; +Middleware requestLogger() { + return (Handler innerHandler) { + return (Request request) async { + final clientIP = request.headers['x-forwarded-for'] ?? + request.headers['x-real-ip'] ?? + 'unknown'; + final userAgent = request.headers['user-agent'] ?? 'unknown'; + final method = request.method; + final path = request.requestedUri.path; + final timestamp = DateTime.now().toIso8601String(); + + print('[$timestamp] $method $path - IP: $clientIP - User-Agent: $userAgent'); + + return await innerHandler(request); + }; + }; +} + List routers = [ PeerRoutes().router, ]; @@ -46,6 +64,10 @@ void main() async { app.mount('/api/', router); } - var server = await serve(app, '0.0.0.0', 3000); + final handler = Pipeline() + .addMiddleware(requestLogger()) + .addHandler(app); + + var server = await serve(handler, '0.0.0.0', 3000); print('Server running on http://${server.address.host}:${server.port}'); } \ No newline at end of file