type position = {
filename : string;
line : int;
}
type log_severity = [
| `Error
| `Info
| `Warning
]
type !'result test_event =
| EStart
| EEnd
| EResult of 'result
| ELog of log_severity * string
| ELogRaw of string
type (!'path, !'result) result_full = 'path * 'result * position option
type (!'path, !'result) global_event =
| GConf of string * string
| GLog of log_severity * string
| GStart
| GEnd
| GResults of float * ('path, 'result) result_full list * int
type (!'path, !'result) log_event_t =
| GlobalEvent of ('path, 'result) global_event
| TestEvent of 'path * 'result test_event
type (!'path, !'result) log_event = {
shard : string;
timestamp : float;
event : ('path, 'result) log_event_t;
}
type (!'path, !'result) logger = {
lshard : string;
fwrite : ('path, 'result) log_event -> unit;
fpos : unit -> position option;
fclose : unit -> unit;
}
val shard_default : string
val null_logger : ('a, 'b) logger
val fun_logger :
(('a, 'b) log_event -> unit) ->
(unit -> unit) ->
('a, 'b) logger
val set_shard : string -> ('a, 'b) logger -> ('a, 'b) logger
val infof : ('a, 'b) logger -> ('c, unit, string, unit) format4 -> 'c
val warningf : ('a, 'b) logger -> ('c, unit, string, unit) format4 -> 'c
val errorf : ('a, 'b) logger -> ('c, unit, string, unit) format4 -> 'c
val close : ('a, 'b) logger -> unit
module Test : sig ... end