mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-05-30 15:42:25 +00:00
🎉 Release BitLogger v0.1.0 core
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
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")
|
||||
}
|
||||
Reference in New Issue
Block a user