mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-05-30 15:42:25 +00:00
55 lines
1.8 KiB
MoonBit
55 lines
1.8 KiB
MoonBit
test "default logger can be reconfigured" {
|
|
set_default_min_level(Level::Debug)
|
|
set_default_target("global")
|
|
let logger = default_logger()
|
|
inspect(logger.min_level.label(), content="DEBUG")
|
|
inspect(logger.target, content="global")
|
|
}
|
|
|
|
test "logger can enable timestamps" {
|
|
let logger = Logger::new(console_sink(), min_level=Level::Info, target="time")
|
|
.with_timestamp()
|
|
inspect(logger.timestamp, content="true")
|
|
}
|
|
|
|
test "callback sink receives record" {
|
|
let captured_target : Ref[String] = Ref::new("")
|
|
let captured_message : Ref[String] = Ref::new("")
|
|
let logger = Logger::new(
|
|
callback_sink(fn(rec) {
|
|
captured_target.val = rec.target
|
|
captured_message.val = rec.message
|
|
}),
|
|
min_level=Level::Info,
|
|
target="callback",
|
|
)
|
|
logger.info("hello")
|
|
inspect(captured_target.val, content="callback")
|
|
inspect(captured_message.val, content="hello")
|
|
}
|
|
|
|
test "callback sink sees child target and context logger shape" {
|
|
let captured_target : Ref[String] = Ref::new("")
|
|
let captured_message : Ref[String] = Ref::new("")
|
|
let captured_field_count : Ref[Int] = Ref::new(0)
|
|
let captured_timestamp : Ref[UInt64] = Ref::new(0UL)
|
|
let logger = Logger::new(
|
|
callback_sink(fn(rec) {
|
|
captured_target.val = rec.target
|
|
captured_message.val = rec.message
|
|
captured_field_count.val = rec.fields.length()
|
|
captured_timestamp.val = rec.timestamp_ms
|
|
}),
|
|
min_level=Level::Info,
|
|
target="app",
|
|
)
|
|
.child("worker")
|
|
.with_context_fields([field("service", "bitlogger")])
|
|
.with_timestamp()
|
|
logger.info("ready", fields=[field("mode", "test")])
|
|
inspect(captured_target.val, content="app.worker")
|
|
inspect(captured_message.val, content="ready")
|
|
inspect(captured_field_count.val, content="2")
|
|
inspect(captured_timestamp.val > 0UL, content="true")
|
|
}
|