diff --git a/bin/main.ml b/bin/main.ml index 60b4386..c07a343 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -1,3 +1,5 @@ +include (val Logging.sublogs Server.logger "Main") + let min_level = match Sys.getenv_opt "LOG_LEVEL" |> Option.map String.uppercase_ascii with | Some "TRACE" -> Logging.TRACE @@ -72,4 +74,14 @@ let config : Server.config = { } let () = - Lwt_main.run @@ Server.run config + Printexc.register_printer + (function + | Unix.Unix_error (eno, who, _) -> Some (Fmt.str "%s: %s" who (Unix.error_message eno)) + | Failure msg -> Some ("internal error: " ^ msg) + | Invalid_argument who -> Some ("internal error: invalid argumnet: " ^ who) + | _ -> None); + try + Lwt_main.run @@ Server.run config + with exn -> + error (fun m -> m "%a" Fmt.exn exn); + exit 1