summaryrefslogtreecommitdiff
path: root/bs5/server/middleware/logs.ml
diff options
context:
space:
mode:
Diffstat (limited to 'bs5/server/middleware/logs.ml')
-rw-r--r--bs5/server/middleware/logs.ml12
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