@@ -84,6 +84,7 @@ let unwrap_handler_result req = function
8484
8585type t = {
8686 backend : (module IO_BACKEND );
87+ enable_logging : bool ;
8788 mutable tcp_server : IO.TCP_server .t option ;
8889 mutable handler : IO.Input .t Request .t -> Response .t ;
8990 (* * toplevel handler, if any *)
@@ -250,7 +251,7 @@ let add_route_server_sent_handler ?accept ?(middlewares = []) self route f =
250251 end in
251252 (try f req (module SSG : SERVER_SENT_GENERATOR )
252253 with Exit_SSE -> IO.Output. close oc);
253- Log. info (fun k -> k " closed SSE connection" )
254+ if self.enable_logging then Log. info (fun k -> k " closed SSE connection" )
254255 in
255256 add_route_handler_ self ?accept ~meth: `GET route ~tr_req f
256257
@@ -272,11 +273,13 @@ let add_upgrade_handler ?(accept = fun _ -> Ok ()) ?(middlewares = [])
272273
273274let clear_bytes_ bs = Bytes. fill bs 0 (Bytes. length bs) '\x00'
274275
275- let create_from ?(buf_size = 16 * 1_024 ) ?(middlewares = [] ) ~backend () : t =
276+ let create_from ?(enable_logging = not Log. dummy) ?(buf_size = 16 * 1_024 )
277+ ?(middlewares = [] ) ~backend () : t =
276278 let handler _req = Response. fail ~code: 404 " no top handler" in
277279 let self =
278280 {
279281 backend;
282+ enable_logging;
280283 tcp_server = None ;
281284 handler;
282285 path_handlers = [] ;
@@ -326,7 +329,7 @@ let client_handle_for (self : t) ~client_addr ic oc : unit =
326329
327330 (* how to log the response to this query *)
328331 let log_response (req : _ Request.t ) (resp : Response.t ) =
329- if not Log. dummy then (
332+ if self.enable_logging && not Log. dummy then (
330333 let msgf k =
331334 let elapsed = B. get_time_s () -. req.start_time in
332335 k
@@ -353,14 +356,14 @@ let client_handle_for (self : t) ~client_addr ic oc : unit =
353356 let handle_exn e bt : unit =
354357 let msg = Printexc. to_string e in
355358 let resp = Response. fail ~code: 500 " server error: %s" msg in
356- if not Log. dummy then log_exn msg bt;
359+ if self.enable_logging && not Log. dummy then log_exn msg bt;
357360 Response.Private_. output_ ~bytes: bytes_res oc resp
358361 in
359362
360363 let handle_bad_req req e bt =
361364 let msg = Printexc. to_string e in
362365 let resp = Response. fail ~code: 500 " server error: %s" msg in
363- if not Log. dummy then (
366+ if self.enable_logging && not Log. dummy then (
364367 log_exn msg bt;
365368 log_response req resp
366369 );
@@ -393,7 +396,8 @@ let client_handle_for (self : t) ~client_addr ic oc : unit =
393396 match UP. handshake client_addr req with
394397 | Error msg ->
395398 (* fail the upgrade *)
396- Log. error (fun k -> k " upgrade failed: %s" msg);
399+ if self.enable_logging then
400+ Log. error (fun k -> k " upgrade failed: %s" msg);
397401 send_resp @@ Response. make_raw ~code: 429 " upgrade required"
398402 | Ok (headers , handshake_st ) ->
399403 (* send the upgrade reply *)
0 commit comments