sig
  type level = Log.level = Show | Error | Warning | Info | Debug
  val msg :
    ?header:string ->
    level -> ('a, Format.formatter, unit, unit) format4 -> 'a
  val kmsg :
    ?header:string ->
    (unit -> 'a) -> level -> ('b, Format.formatter, unit, 'a) format4 -> 'b
  val show :
    ?header:string -> ('a, Format.formatter, unit, unit) format4 -> 'a
  val err :
    ?header:string -> ('a, Format.formatter, unit, unit) format4 -> 'a
  val warn :
    ?header:string -> ('a, Format.formatter, unit, unit) format4 -> 'a
  val info :
    ?header:string -> ('a, Format.formatter, unit, unit) format4 -> 'a
  val debug :
    ?header:string -> ('a, Format.formatter, unit, unit) format4 -> 'a
  val level : unit -> level option
  val set_level : level option -> unit
  val set_formatter : [ `All | `Level of level ] -> Format.formatter -> unit
  val err_count : unit -> int
  val warn_count : unit -> int
end