Log.BlockingAsync programs often have a non-Async portion that runs before the scheduler begins to capture command line options, do setup, read configs, etc. This module provides limited global logging functions to be used during that period. Calling these functions after the scheduler has started will raise an exception. They otherwise behave similarly to the logging functions in the Async world.
There are more detailed comments for the API below near the non-blocking signatures.
module Output : sig ... endval level : unit -> Level.tval set_level : Level.t -> unitval set_output : Output.t -> unitval raw :
?time:Core.Time.t ->
?tags:(string * string) list ->
('a, unit, string, unit) Core.format4 ->
'aval info :
?time:Core.Time.t ->
?tags:(string * string) list ->
('a, unit, string, unit) Core.format4 ->
'aval error :
?time:Core.Time.t ->
?tags:(string * string) list ->
('a, unit, string, unit) Core.format4 ->
'aval debug :
?time:Core.Time.t ->
?tags:(string * string) list ->
('a, unit, string, unit) Core.format4 ->
'aval raw_s :
?time:Core.Time.t ->
?tags:(string * string) list ->
Core.Sexp.t ->
unitval info_s :
?time:Core.Time.t ->
?tags:(string * string) list ->
Core.Sexp.t ->
unitval error_s :
?time:Core.Time.t ->
?tags:(string * string) list ->
Core.Sexp.t ->
unitval debug_s :
?time:Core.Time.t ->
?tags:(string * string) list ->
Core.Sexp.t ->
unitval sexp :
?level:Level.t ->
?time:Core.Time.t ->
?tags:(string * string) list ->
Core.Sexp.t ->
unitval surround_s :
?level:Level.t ->
?time:Core.Time.t ->
?tags:(string * string) list ->
Core.Sexp.t ->
(unit -> 'a) ->
'aval surroundf :
?level:Level.t ->
?time:Core.Time.t ->
?tags:(string * string) list ->
('a, unit, string, (unit -> 'b) -> 'b) Core.format4 ->
'a