Skip to content

pkg/log

📝 `pkg/log/log.go` — 统一日志门面。

封装 charmbracelet/log,提供分级彩色日志、命令标题、Markdown 渲染、调试开关。全项目统一调用,便于控制输出风格与级别。

📁 源码:pkg/log/log.go

核心类型

符号源码说明
LoggerL47内部 logger 状态
formatLogMessageL76统一格式化
GetLogger()L222*slog.Logger
slogToCharmL228slog→charm 适配

分级函数

函数源码级别
DebugL119🔍 调试
InfoL130ℹ️ 信息
WarnL141⚠️ 警告
ErrorL152❌ 错误
FatalL164💀 致命(退出)
SuccessL176✅ 成功

辅助

函数源码说明
CommandTitle(title)L184命令标题横幅
CommandHelp(text)L195帮助文本(Markdown 渲染)
EnableDebug()L201开 Debug 级
EnableSilence()L207静默
IsDebugEnabled()L214查询开关

级别流

snir 自身与依赖库的日志如何汇聚到同一输出:

slog 适配

一个门面收编两类库

GetLogger 返回标准库 *slog.Logger,通过 slogToCharm 桥接到 charm 输出。

→ snir 自身用 log.Info 等 charm 风格函数,而依赖库(如 chromedp)若用 slog,也能纳入同一套级别开关与彩色风格,不会出现两套日志各打各的。

CommandHelp Markdown

CommandHelp 借助 glamour 把 Markdown 渲染成终端彩色文本,让 CLI 帮助更美观。

下一步

基于 MIT 许可发布