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