summaryrefslogtreecommitdiff
path: root/bs5/server/middleware/logs.ml
blob: 6925ca40ae75591f5a2ddd283b29b42c6f2ef3c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
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