mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-05-30 15:42:25 +00:00
2.1 KiB
2.1 KiB
<html>
2026 MoonBit 国产基础软件生态开源大赛参赛作品
中文 | English
</html>
📖 介绍
BitLogger 是一个基于 MoonBit 编写的结构化日志库。
❇️ 特点
- 🧩 核心能力清晰:先把 logging core 做稳,再继续扩展
FileSink、buffered/async 等能力。 - 🏗️ 结构明确:按
level / record / formatter / sinks / logger / global拆文件,便于继续维护。 - 🔌 可扩展:支持
fanout_sink(...)和callback_sink(...),方便后续桥接文件、指标或外部系统。 - 📦 面向 MoonBit:API 和工程结构围绕 MoonBit 的 package / visibility / toolchain 现实约束设计。
🚀 快速开始
let logger = Logger::new(console_sink(), min_level=Level::Info, target="demo")
.with_timestamp()
.with_context_fields([field("service", "bitlogger")])
logger.info("starting", fields=[field("port", "8080")])
层级 target 示例:
let worker = Logger::new(console_sink(), target="app").child("worker")
worker.info("job ready")
自定义 callback sink 示例:
let hook = Logger::new(
callback_sink(fn(rec) {
println("callback saw [\{rec.target}] \{rec.message}")
}),
target="hook",
)
hook.info("hello")
📂 仓库结构
bitlogger/:MoonBit 库 package,本体实现、测试与 Mooncake READMEexamples/basic/:最小可运行示例