mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-07-24 00:42:18 +00:00
65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
# BitLogger
|
||
|
||
BitLogger 是一个使用 MoonBit 编写的结构化日志库,适合命令行工具、服务和需要统一日志输出的项目。
|
||
|
||
- [Mooncake 文档页](https://mooncakes.io/docs/Nanaloveyuki/BitLogger)
|
||
- [English README](./docs/README-en.md)
|
||
|
||
## 介绍
|
||
|
||
BitLogger 提供统一的日志级别、目标名、结构化字段和可定制格式,既可以直接输出到控制台,也可以在 native 环境写入文件,并提供异步日志版本。
|
||
|
||
## 快速开始
|
||
|
||
```moonbit
|
||
let logger = build_logger(
|
||
text_console(
|
||
min_level=Level::Info,
|
||
target="demo",
|
||
text_formatter=TextFormatterConfig::new(show_timestamp=false, separator=" | "),
|
||
),
|
||
)
|
||
|
||
logger.info("starting", fields=[field("port", "8080")])
|
||
ignore(logger.flush())
|
||
```
|
||
|
||
推荐从 `console(...)`、`json_console(...)`、`text_console(...)`、`file(...)` 这几个入口开始,再按需配合 `with_queue(...)` 或 `with_file_rotation(...)`。
|
||
|
||
如果你需要自己组合 sink,比如 `fanout`、`split`、`callback`,再使用 `Logger::new(...)`。
|
||
|
||
## 支持情况
|
||
|
||
- `BitLogger` 当前在 CI 中检查/验证的目标是 `native`、`js`、`wasm-gc`
|
||
- `bitlogger_async` 当前在 CI 中检查 `native`、`js`、`wasm-gc`,测试覆盖 `native`、`js`、`wasm-gc`
|
||
- `wasm` 目标在源码 `moon.pkg` 中保留声明,但当前未纳入 CI 验证口径
|
||
- `llvm` 目前按实验性目标处理,当前环境未完成验证
|
||
- 文件输出是 native 能力;跨端代码里建议先判断 `native_files_supported()`
|
||
- `src-async` 可用,但示例 `examples/async_basic` 目前仍按 native 入口提供
|
||
|
||
## 主要能力
|
||
|
||
- 结构化日志:level、target、message、fields
|
||
- 多种输出方式:console、json console、text console、file
|
||
- 可定制文本格式:模板、style tag、颜色控制
|
||
- 配置驱动构建:`build_logger(...)`、`build_async_logger(...)`
|
||
- 组合能力:queue、filter、patch、fanout、split、callback
|
||
- 异步日志:独立 `src-async` package
|
||
|
||
## 示例
|
||
|
||
- `examples/console_basic/`:最小 console / json console 示例
|
||
- `examples/text_formatter/`:文本格式与模板示例
|
||
- `examples/style_tags/`:style tag 与彩色输出示例
|
||
- `examples/config_build/`:配置构建示例
|
||
- `examples/presets/`:常用预设组合示例
|
||
- `examples/file_rotation/`:文件输出与轮转示例,仅适用于 native
|
||
- `examples/async_basic/`:异步日志示例
|
||
|
||
## 文档
|
||
|
||
- [API 索引](./docs/api/index.md)
|
||
- [src package README](./src/README.mbt.md)
|
||
|
||
常用入口:`text_console(...)`、`file(...)`、`with_queue(...)`、`build_logger(...)`、`build_async_logger(...)`
|