Files
BitLogger/README.md
T
2026-05-08 15:18:52 +08:00

2.1 KiB
Raw Blame History

<html>

2026 MoonBit 国产基础软件生态开源大赛参赛作品

中文 | English
</html>

📖 介绍

BitLogger 是一个基于 MoonBit 编写的结构化日志库。

❇️ 特点

  • 🧩 核心能力清晰:先把 logging core 做稳,再继续扩展 FileSink、buffered/async 等能力。
  • 🏗️ 结构明确:按 level / record / formatter / sinks / logger / global 拆文件,便于继续维护。
  • 🔌 可扩展:支持 fanout_sink(...)callback_sink(...),方便后续桥接文件、指标或外部系统。
  • 📦 面向 MoonBitAPI 和工程结构围绕 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 README
  • examples/basic/:最小可运行示例

🔗 相关文档