Files
BitLogger/docs/zh/api/basics.md
T
2026-07-17 18:06:30 +08:00

1.7 KiB

基础记录 API

控制台示例依赖以下四个入口:先用 preset 描述输出,再由 build_logger(...) 构建运行时 Logger,最后用 field(...) 附加结构化上下文。

console(...)json_console(...)

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(...)

pub fn field(key : String, value : String) -> Field

创建一个结构化字段。它保留原始 key/value,不做去重、归一化或校验;应使用稳定字段名,便于下游筛选。

logger.info("accepted", fields=[@log.field("user", "alice")])

build_logger(...)

pub fn build_logger(config : LoggerConfig) -> ConfiguredLogger

这是同步 config 到运行时的桥梁:它先按 config.sink 构建 RuntimeSink,再应用可选的 config.queue。返回值仍保留普通日志方法,以及适用时的队列和文件控制方法。

let logger = @log.build_logger(
  @log.console(min_level=@log.Level::Info, target="service"),
)
logger.info("ready", fields=[@log.field("port", "8080")])

英文原始 API