mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-07-30 23:14:22 +00:00
✨ add wasm coverage and trace context
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
///|
|
||||
let benchmark_record : @log.Record = @log.Record::new(
|
||||
@log.Level::Info,
|
||||
"benchmark record",
|
||||
target="bench",
|
||||
fields=[@log.field("component", "bitlogger")],
|
||||
)
|
||||
|
||||
///|
|
||||
test "bench callback logger emission" (it : @bench.T) {
|
||||
let writes : Ref[Int] = Ref(0)
|
||||
let logger = @log.Logger::new(@log.callback_sink(fn(_) { writes.val += 1 }))
|
||||
it.bench(fn() {
|
||||
logger.info("benchmark record", fields=[
|
||||
@log.field("component", "bitlogger"),
|
||||
])
|
||||
it.keep(writes.val)
|
||||
})
|
||||
}
|
||||
|
||||
///|
|
||||
test "bench trace context field binding" (it : @bench.T) {
|
||||
let writes : Ref[Int] = Ref(0)
|
||||
let context = @log.trace_context("trace-bench", "span-bench")
|
||||
let logger = @log.Logger::new(@log.callback_sink(fn(_) { writes.val += 1 })).with_trace_context(
|
||||
context,
|
||||
)
|
||||
it.bench(fn() {
|
||||
logger.info("benchmark record", fields=[@log.field("event", "request")])
|
||||
it.keep(writes.val)
|
||||
})
|
||||
}
|
||||
|
||||
///|
|
||||
test "bench queued logger enqueue and flush" (it : @bench.T) {
|
||||
let writes : Ref[Int] = Ref(0)
|
||||
let logger = @log.Logger::new(@log.callback_sink(fn(_) { writes.val += 1 })).with_queue(
|
||||
max_pending=8,
|
||||
)
|
||||
it.bench(fn() {
|
||||
logger.info("benchmark record")
|
||||
it.keep(logger.sink.flush())
|
||||
})
|
||||
}
|
||||
|
||||
///|
|
||||
test "bench native file sink write" (it : @bench.T) {
|
||||
let sink = @log.file_sink(
|
||||
"logs/bitlogger-benchmark.log",
|
||||
append=false,
|
||||
auto_flush=false,
|
||||
formatter=fn(rec) { rec.message },
|
||||
)
|
||||
if sink.is_available() {
|
||||
it.bench(fn() {
|
||||
sink.write(benchmark_record)
|
||||
it.keep(sink.write_failures())
|
||||
})
|
||||
ignore(sink.close())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user