问题内容 官方文档展示了如何使用新的结构化日志记录包,但似乎省略了如何记录错误。 https://pkg.Go.dev/log/slog package main import (
官方文档展示了如何使用新的结构化日志记录包,但似乎省略了如何记录错误。
package main
import (
"fmt"
"log/slog"
"os"
)
func demoFunction() error {
return fmt.Errorf("oh no: %v", 123)
}
func main() {
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
slog.SetDefault(logger)
slog.Info("info demo", "count", 3)
slog.Warn("warn demo", slog.String("somekey", "somevalue"))
slog.Error("error demo", slog.Int("someinTKEy", 123))
err := demoFunction()
if err != nil {
// Here I'm logging the error as a string, but I presume there is a better way
// possibly that will log stack trace info as well.
slog.Error("the demo function got an error.", slog.String("error", err.Error()))
}
}
有人提出了一个提案并关闭了它。我认为它最终会成为不必要的语法糖。
看来有些人已经决定包装slog.Any 调用
func ErrAttr(err error) slog.Attr {
return slog.Any("error", err)
}
以上就是如何使用“log/slog”记录错误的详细内容,更多请关注编程网其它相关文章!
--结束END--
本文标题: 如何使用“log/slog”记录错误
本文链接: https://lsjlt.com/news/561468.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0