Programs that want simplistic single-channel logging can open this module. It provides a global logging facility to a single output type at a single level. More nuanced logging can be had by using the functions that operate on a distinct Log.t type.
val log : t Core.Lazy.tval level : unit ‑> Level.tval set_level : Level.t ‑> unitval set_output : Output.t list ‑> unitval get_output : unit ‑> Output.t listval set_on_error : [ `Raise | `Call of Core.Error.t ‑> unit ] ‑> unitval would_log : Level.t option ‑> boolval raw : ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> ('a, unit, string, unit) Core.format4 ‑> 'alogging functions as the functions that operate on a given log. In this case they operate on a single log global to the module
val 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 flushed : unit ‑> unit Async_unix.Import.Deferred.tval rotate : unit ‑> unit Async_unix.Import.Deferred.tval printf : ?level:Level.t ‑> ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> ('a, unit, string, unit) Core.format4 ‑> 'aval sexp : ?level:Level.t ‑> ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> Core.Sexp.t ‑> unitval string : ?level:Level.t ‑> ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> string ‑> unitval message : Message.t ‑> unitval surround_s : ?level:Level.t ‑> ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> Core.Sexp.t ‑> (unit ‑> 'a Async_unix.Import.Deferred.t) ‑> 'a Async_unix.Import.Deferred.tval surroundf : ?level:Level.t ‑> ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> ('a, unit, string, (unit ‑> 'b Async_unix.Import.Deferred.t) ‑> 'b Async_unix.Import.Deferred.t) Core.format4 ‑> 'a