Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
debug.ml1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31open Lwt.Infix open Opium_kernel.Rock let exn_ e = Logs.err (fun f -> f "%s" (Printexc.to_string e)) let log_src = Logs.Src.create "opium.server" let format_error req _exn = Printf.sprintf " <html> <body> <div id=\"request\"><pre>%s</pre></div> <div id=\"error\"><pre>%s</pre></div> </body> </html>" (req |> Request.sexp_of_t |> Sexplib.Sexp.to_string_hum) (Printexc.to_string _exn) let debug = let filter handler req = Lwt.catch (fun () -> handler req) (fun _exn -> exn_ _exn; format_error req _exn |> Response.of_string_body ~code:`Internal_server_error |> Lwt.return) in Middleware.create ~name:"Debug" ~filter let trace = let filter handler req = handler req >|= fun response -> let code = response |> Response.code |> Cohttp.Code.code_of_status in Logs.debug ~src:log_src (fun m -> m "Responded with %d" code); response in Middleware.create ~name:"Trace" ~filter