let post_logger fpost =
let data = ref [] in
let fwrite ev = data := ev :: !data in
let fclose () = fpost (List.rev !data) in
{
lshard = shard_default;
fwrite = fwrite;
fpos = (fun () -> None);
fclose = fclose;
}