SuperAPI AI 工具集

fp-go-logging

通用与其它

查看项目

更新于 10-15 22:16

技能介绍

用途:fp-go 提供与函数式管道自然集成的日志工具。日志属于副作用,不应改变被处理的值,因此库通过 ChainFirst 风格组合子把原值原样传递下去,同时执行日志。

主要能力:github.com/IBM/fp-go/v2/logging 提供全局日志器、上下文内嵌日志器与 LoggingCallbacks;io 包提供 Logf、Logger、LogGo、Printf、PrintGo;readerio、context/readerio、context/readerresult、context/readerioresult 提供 SLog、TapSLog、SLogWithCallback、LogEntryExit、LogEntryExitWithCallback 等结构化日志函数。

使用方式:在管道中用 ChainFirstIOK 配合 IO.LogfA 做 printf 式日志;用 IO.LogGoA 做 Go 模板日志;用 RIO.TapSLogA 在 Pipe 中内联结构化日志;用 RIO.Chain(RIO.SLogA) 拦截原始 Result;用 RIO.LogEntryExitA 记录进入/退出、耗时与关联 ID。上下文日志通过 logging.WithLogger 嵌入,GetLoggerFromContext 读取,未找到时回退全局日志器。

适用场景:IOResult、ReaderIOResult、ReaderResult、IOEither 等单子管道中的调试与可观测性,数组遍历逐项日志,请求级结构化日志。

限制:LogEntryExit 在日志级别未启用时跳过整个插桩;WithLogger 返回的取消函数为空操作;具体版本与平台要求资料未完整提供。