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