sig
  type time
  type t = private {
    id : int;
    hostname : string;
    process : int;
    thread : int;
    timestamp : Event.time;
    relative : int;
    level : Level.t;
    logger : Name.t;
    origin : Name.t;
    file : string;
    line : int;
    column : int;
    message : string;
    properties : (string * string) list;
    error : (exn * string) option;
  }
  val make :
    Name.t ->
    Level.t ->
    ?origin:Name.t option ->
    ?file:string ->
    ?line:int ->
    ?column:int ->
    ?properties:(string * string) list ->
    ?error:exn option -> string -> Event.t
  val with_logger : Name.t -> Event.t -> Event.t
  val bindings : Event.t -> (string * string) list
  val render_bindings : (string * string) list -> string -> string
  val render : string -> Event.t -> string
end