Module Logs.Tag
Message tags.
Message tags are arbitrary named and typed values that can be associated to log messages. See an example.
Tag definitions
type 'a def
The type for tag definitions. The type
'a
is the type of the tag. The definition specifies a name for the tag, a pretty-printer for the type of the tag and a documentation string. Seedef
.
val def : ?doc:string -> string -> (Stdlib.Format.formatter -> 'a -> unit) -> 'a def
def ~doc name pp
is a tag definition.name
is the name of the tag, it doesn't need to be unique.pp
is a printer for the type of the tag.doc
is a documentation string describing the tag (defaults to"undocumented"
).
val name : 'a def -> string
name d
isd
's name.
val doc : 'a def -> string
doc d
isd
's documentation string.
val printer : 'a def -> Stdlib.Format.formatter -> 'a -> unit
printer d
isd
's type pretty-printer.
val pp_def : Stdlib.Format.formatter -> 'a def -> unit
pp_def ppf d
prints an unspecified representation ofd
onppf
.
val list : unit -> def_e list
tag_list ()
is the list of currently existing tag definitions.
Tags
val pp : Stdlib.Format.formatter -> t -> unit
pp ppf t
prints an unspecified representation oft
onppf
.
Tag sets
val empty : set
empty
is the empty set.
val is_empty : set -> bool
is_empty s
istrue
iffs
is empty.
val add : 'a def -> 'a -> set -> set
add d v s
iss
with the tag(V (d, v))
added. If there was a tag with definitiond
ins
it is replaced.
val get : 'a def -> set -> 'a
get d s
is likefind d s
but- raises Invalid_argument
if there is no tag with definition
d
ins
.
val fold : (t -> 'a -> 'a) -> set -> 'a -> 'a
fold f s acc
is the result of foldingf
over the tags ofs
starting withacc
.
val pp_set : Stdlib.Format.formatter -> set -> unit
pp_set ppf s
prints an unspecified representation of s onppf
.