# Module OUnitLogger

    module OUnitLogger: sig .. end

See OUnit.mli.

    type position = {

`` | `filename : `string`;`
`` | `line : `int`;`

}

    type log_severity = [ `Error | `Info | `Warning ]

See OUnit.mli.

    type 'result test_event =

`|` | `EStart`
`|` | `EEnd`
`|` | `EResult of `'result``
`|` | `ELog of `log_severity * string``
`|` | `ELogRaw of `string``

See OUnit.mli.

    type ('path, 'result) result_full = 'path * 'result * position option

    type ('path, 'result) global_event =

`|` | `GConf of `string * string`` | `(*` | Dump a configuration options. | `*)`
`|` | `GLog of `log_severity * string``
`|` | `GStart` | `(*` | Start running the tests. | `*)`
`|` | `GEnd` | `(*` | Finish running the tests. | `*)`
`|` | `GResults of `(float * ('path, 'result) result_full list * int)``

Events which occur at the global level.

    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 string_of_event : ('a, 'b) log_event_t -> string

    val null_logger : ('a, 'b) logger

    val fun_logger : (('a, 'b) log_event -> unit) ->
           (unit -> unit) -> ('a, 'b) logger

    val post_logger : (('a, 'b) log_event list -> unit) -> ('a, 'b) logger

    val set_shard : string -> ('a, 'b) logger -> ('a, 'b) logger

    val report : ('a, 'b) logger -> ('a, 'b) log_event_t -> unit

    val infof : ('a, 'b) logger ->
           ('c, unit, string, unit) Pervasives.format4 -> 'c

    val warningf : ('a, 'b) logger ->
           ('c, unit, string, unit) Pervasives.format4 -> 'c

    val errorf : ('a, 'b) logger ->
           ('c, unit, string, unit) Pervasives.format4 -> 'c

    val position : ('a, 'b) logger -> position option

    val close : ('a, 'b) logger -> unit

    val combine : ('a, 'b) logger list -> ('a, 'b) logger

    module Test: sig .. end