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.t
val level : unit ‑> Level.t
val set_level : Level.t ‑> unit
val set_output : Output.t list ‑> unit
val get_output : unit ‑> Output.t list
val set_on_error : [ `Raise | `Call of Core.Error.t ‑> unit ] ‑> unit
val would_log : Level.t option ‑> bool
val raw : ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> ('a, unit, string, unit) Core.format4 ‑> 'a
logging 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 ‑> 'a
val error : ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> ('a, unit, string, unit) Core.format4 ‑> 'a
val debug : ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> ('a, unit, string, unit) Core.format4 ‑> 'a
val flushed : unit ‑> unit Async_unix.Import.Deferred.t
val rotate : unit ‑> unit Async_unix.Import.Deferred.t
val printf : ?level:Level.t ‑> ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> ('a, unit, string, unit) Core.format4 ‑> 'a
val sexp : ?level:Level.t ‑> ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> Core.Sexp.t ‑> unit
val string : ?level:Level.t ‑> ?time:Core.Time.t ‑> ?tags:(string * string) list ‑> string ‑> unit
val message : Message.t ‑> unit
val 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.t
val 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