最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 如何使用“log/slog”记录错误

    如何使用“log/slog”记录错误

    问题内容

    官方文档展示了如何使用新的结构化日志记录包,但似乎省略了如何记录错误。

    https://pkg.go.dev/log/slog

    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)
    }
    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 如何使用“log/slog”记录错误
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情