use fmt; export type teetracer = struct { tracer, sinks: []*tracer, }; export fn tee(sinks: *tracer...) teetracer = { return teetracer { log = &tee_log, sinks = sinks, }; }; export fn tee_log( tr: *tracer, ctx: nullable *context, lvl: level, fmt: str, fields: fmt::field... ) void = { const tr = tr: *teetracer; for (let i = 0z; i < len(tr.sinks); i += 1) { log(tr.sinks[i], ctx, lvl, fmt, fields...); }; };