sig   type log   type level = NONE | FATAL | ERROR | WARN | NOTICE | INFO | DEBUG   val make_log : string -> BatLogger.log   val log_name : BatLogger.log -> string   val log_enable : BatLogger.log -> BatLogger.level -> unit   val log_level : BatLogger.log -> BatLogger.level   val log_enabled : BatLogger.log -> BatLogger.level -> bool   type event = string * (string * string) list   val log :     BatLogger.log -> BatLogger.level -> (unit -> BatLogger.event) -> unit   val with_log :     BatLogger.log ->     BatLogger.level ->     (unit -> BatLogger.event) -> ?result:('-> string) -> (unit -> 'a) -> 'a   type formatter =       BatLogger.log -> BatLogger.level -> BatLogger.event -> float -> unit   val register_formatter : string -> BatLogger.formatter -> unit   val unregister_formatter : string -> unit   val make_std_formatter : 'BatIO.output -> BatLogger.formatter   val stderr_formatter : BatLogger.formatter   val null_formatter : BatLogger.formatter   val make_dbg_formatter : 'BatIO.output -> BatLogger.formatter   val dbg_formatter : BatLogger.formatter   val init : (string * BatLogger.level) list -> BatLogger.formatter -> unit   val init_from_string : string -> BatLogger.formatter -> unit   val level_of_name : string -> BatLogger.level   val name_of_level : BatLogger.level -> string   val format_timestamp : 'BatIO.output -> float -> unit end