mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-07-24 00:42:18 +00:00
56 lines
1.7 KiB
Markdown
56 lines
1.7 KiB
Markdown
# 基础记录 API
|
|
|
|
控制台示例依赖以下四个入口:先用 preset 描述输出,再由 `build_logger(...)` 构建运行时 Logger,最后用 `field(...)` 附加结构化上下文。
|
|
|
|
## `console(...)` 与 `json_console(...)`
|
|
|
|
```moonbit
|
|
pub fn console(
|
|
min_level~ : Level = Level::Info,
|
|
target~ : String = "",
|
|
timestamp~ : Bool = false,
|
|
) -> LoggerConfig
|
|
|
|
pub fn json_console(
|
|
min_level~ : Level = Level::Info,
|
|
target~ : String = "",
|
|
timestamp~ : Bool = false,
|
|
) -> LoggerConfig
|
|
```
|
|
|
|
两者都只生成 `LoggerConfig`,不会直接创建运行时 Logger。`console(...)` 适合人读输出,`json_console(...)` 适合按行采集的机器读取输出;默认都不带队列。
|
|
|
|
## `field(...)`
|
|
|
|
```moonbit
|
|
pub fn field(key : String, value : String) -> Field
|
|
```
|
|
|
|
创建一个结构化字段。它保留原始 key/value,不做去重、归一化或校验;应使用稳定字段名,便于下游筛选。
|
|
|
|
```moonbit
|
|
logger.info("accepted", fields=[@log.field("user", "alice")])
|
|
```
|
|
|
|
## `build_logger(...)`
|
|
|
|
```moonbit
|
|
pub fn build_logger(config : LoggerConfig) -> ConfiguredLogger
|
|
```
|
|
|
|
这是同步 config 到运行时的桥梁:它先按 `config.sink` 构建 `RuntimeSink`,再应用可选的 `config.queue`。返回值仍保留普通日志方法,以及适用时的队列和文件控制方法。
|
|
|
|
```moonbit
|
|
let logger = @log.build_logger(
|
|
@log.console(min_level=@log.Level::Info, target="service"),
|
|
)
|
|
logger.info("ready", fields=[@log.field("port", "8080")])
|
|
```
|
|
|
|
## 英文原始 API
|
|
|
|
- [`console(...)`](../../api/console.md)
|
|
- [`json_console(...)`](../../api/json-console.md)
|
|
- [`field(...)`](../../api/field.md)
|
|
- [`build_logger(...)`](../../api/build-logger.md)
|