sig
  type 'a logger = ('a, unit, string, unit) Pervasives.format4 -> 'a
  module type LOGGER =
    sig
      val set_lev : Syslog.lev -> unit
      val get_lev : unit -> Syslog.lev
      val may_log : Syslog.lev -> bool
      val generic : Syslog.lev -> 'Loggers.logger
      val debug : 'Loggers.logger
      val info : 'Loggers.logger
      val notice : 'Loggers.logger
      val warning : 'Loggers.logger
      val err : 'Loggers.logger
      val crit : 'Loggers.logger
      val alert : 'Loggers.logger
      val emerg : 'Loggers.logger
    end
  module type SPEC = sig val logger : Syslog.lev -> string -> unit end
  module MakeLogger : functor (Spec : SPEC-> LOGGER
  module MakeChannel :
    functor (ChannelSpec : sig val oc : Pervasives.out_channel end-> LOGGER
  module Stderr : LOGGER
  module Syslog : LOGGER
  module Ignore : LOGGER
  val ounit_tests : unit -> OUnit.test
end