sig
type level = App | Error | Warning | Info | Debug
val level : unit -> Logs.level option
val set_level : ?all:bool -> Logs.level option -> unit
val pp_level : Format.formatter -> Logs.level -> unit
type src
val default : Logs.src
module Src :
sig
type t = Logs.src
val create : ?doc:string -> string -> Logs.src
val name : Logs.src -> string
val doc : Logs.src -> string
val level : Logs.src -> Logs.level option
val set_level : Logs.src -> Logs.level option -> unit
val equal : Logs.src -> Logs.src -> bool
val compare : Logs.src -> Logs.src -> int
val pp : Format.formatter -> Logs.src -> unit
val list : unit -> Logs.src list
end
module Tag :
sig
type 'a def
type def_e = Def : 'a Logs.Tag.def -> Logs.Tag.def_e
val def :
?doc:string ->
string -> (Format.formatter -> 'a -> unit) -> 'a Logs.Tag.def
val name : 'a Logs.Tag.def -> string
val doc : 'a Logs.Tag.def -> string
val printer : 'a Logs.Tag.def -> Format.formatter -> 'a -> unit
val pp_def : Format.formatter -> 'a Logs.Tag.def -> unit
val list : unit -> Logs.Tag.def_e list
type t = V : 'a Logs.Tag.def * 'a -> Logs.Tag.t
val pp : Format.formatter -> Logs.Tag.t -> unit
type set
val empty : Logs.Tag.set
val is_empty : Logs.Tag.set -> bool
val mem : 'a Logs.Tag.def -> Logs.Tag.set -> bool
val add : 'a Logs.Tag.def -> 'a -> Logs.Tag.set -> Logs.Tag.set
val rem : 'a Logs.Tag.def -> Logs.Tag.set -> Logs.Tag.set
val find : 'a Logs.Tag.def -> Logs.Tag.set -> 'a option
val get : 'a Logs.Tag.def -> Logs.Tag.set -> 'a
val fold : (Logs.Tag.t -> 'a -> 'a) -> Logs.Tag.set -> 'a -> 'a
val pp_set : Format.formatter -> Logs.Tag.set -> unit
end
type ('a, 'b) msgf =
(?header:string ->
?tags:Logs.Tag.set ->
('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a) ->
'b
type 'a log = ('a, unit) Logs.msgf -> unit
val msg : ?src:Logs.src -> Logs.level -> 'a Logs.log
val app : ?src:Logs.src -> 'a Logs.log
val err : ?src:Logs.src -> 'a Logs.log
val warn : ?src:Logs.src -> 'a Logs.log
val info : ?src:Logs.src -> 'a Logs.log
val debug : ?src:Logs.src -> 'a Logs.log
val kmsg :
(unit -> 'b) -> ?src:Logs.src -> Logs.level -> ('a, 'b) Logs.msgf -> 'b
val on_error :
?src:Logs.src ->
?level:Logs.level ->
?header:string ->
?tags:Logs.Tag.set ->
pp:(Format.formatter -> 'b -> unit) ->
use:('b -> 'a) -> ('a, 'b) Result.result -> 'a
val on_error_msg :
?src:Logs.src ->
?level:Logs.level ->
?header:string ->
?tags:Logs.Tag.set ->
use:(unit -> 'a) -> ('a, [ `Msg of string ]) Result.result -> 'a
module type LOG =
sig
val msg : Logs.level -> 'a Logs.log
val app : 'a Logs.log
val err : 'a Logs.log
val warn : 'a Logs.log
val info : 'a Logs.log
val debug : 'a Logs.log
val kmsg : (unit -> 'b) -> Logs.level -> ('a, 'b) Logs.msgf -> 'b
val on_error :
?level:Logs.level ->
?header:string ->
?tags:Logs.Tag.set ->
pp:(Format.formatter -> 'b -> unit) ->
use:('b -> 'a) -> ('a, 'b) Result.result -> 'a
val on_error_msg :
?level:Logs.level ->
?header:string ->
?tags:Logs.Tag.set ->
use:(unit -> 'a) -> ('a, [ `Msg of string ]) Result.result -> 'a
end
val src_log : Logs.src -> (module Logs.LOG)
type reporter = {
report :
'a 'b.
Logs.src ->
Logs.level ->
over:(unit -> unit) -> (unit -> 'b) -> ('a, 'b) Logs.msgf -> 'b;
}
val nop_reporter : Logs.reporter
val reporter : unit -> Logs.reporter
val set_reporter : Logs.reporter -> unit
val report :
Logs.src ->
Logs.level ->
over:(unit -> unit) -> (unit -> 'b) -> ('a, 'b) Logs.msgf -> 'b
val incr_err_count : unit -> unit
val incr_warn_count : unit -> unit
val pp_print_text : Format.formatter -> string -> unit
val pp_header : Format.formatter -> Logs.level * string option -> unit
val err_count : unit -> int
val warn_count : unit -> int
end