type logger type level = | TRACE | DEBUG | INFO | WARN | ERROR (* log_function (fun m -> m "" ); *) type 'a log_function = ((('a, Format.formatter, unit) format -> 'a) -> unit) -> unit type 'a log_module_function = ?__POS__:(string * int * int * int) -> ?__FUNCTION__:string -> ?errno:int -> ('a log_function) module type Logs = sig val logger : logger val trace : _ log_module_function val debug : _ log_module_function val info : _ log_module_function val warn : _ log_module_function val error : _ log_module_function val exn : exn -> Printexc.raw_backtrace -> _ log_module_function val log : level -> ?exn:((exn * Printexc.raw_backtrace) option) -> _ log_module_function end val logs : string -> (module Logs) val sublogs : logger -> string -> (module Logs) val init_pretty_writer : ?min_level:level -> ?color:bool -> ?timestamp:bool -> ?namespace:bool -> ?level:bool -> ?source_loc:bool -> ?backtrace:bool -> out_channel -> unit val init_journald_writer : ?min_level:level -> ?path:string -> unit -> unit val should_upgrade_to_journald : unit -> bool