diff options
Diffstat (limited to 'bs5/server/middleware/logs.ml')
-rw-r--r-- | bs5/server/middleware/logs.ml | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/bs5/server/middleware/logs.ml b/bs5/server/middleware/logs.ml new file mode 100644 index 0000000..6925ca4 --- /dev/null +++ b/bs5/server/middleware/logs.ml @@ -0,0 +1,12 @@ +let detailed_logger inner_handler request = + let method_str = Dream.method_to_string (Dream.method_ request) in + let path = Dream.target request in + let user_agent = Dream.header request "User-Agent" |> Option.value ~default:"unknown" in + let client_ip = Dream.client request in + let%lwt () = + Lwt_io.printf "%s %s %s - %s - %s\n" (Ptime_clock.now () |> Ptime.to_rfc3339) method_str path client_ip user_agent + in + let%lwt response = inner_handler request in + let status = Dream.status response |> Dream.status_to_int in + let%lwt () = Lwt_io.printf " -> %d\n" status in + Lwt.return response |