go - 何时使用 log over fmt 进行调试和打印错误?

标签 go

我知道我们可以使用 logfmt 打印变量或错误。例如,如果我想打印变量,我可以这样做:

h := "world"
fmt.Printf("hello = %v\n", h)
log.Printf("halo = %v\n", h)

输出将是:

hello = world
2016/12/30 09:13:12 halo = world

通常在错误处理中我发现这样的日志

if err != nil {
    log.Println("Error : something terrible happen -> ", err)
    return err
}

但从上述情况我也可以使用 fmt 来打印这样的错误

fmt.Printf("Error : something terrible happen -> %v\n",err.Error())

使用 fmt 而不是 log 打印错误是一种好习惯吗? 然后我总是在调试时使用 fmt 而不是 log 来打印变量。

最佳答案

使用这些事实在 logfmt 之间进行选择:

三个子问题的答案是“视情况而定”。

关于go - 何时使用 log over fmt 进行调试和打印错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41389933/

相关文章:

go - Println 如何访问未导出的字段

postgresql - 如何获取 Golang 数据库连接池来管理集群中多台主机的连接?

database - 使用 Golang 及时提交到数据库

mongodb - 使用 mgo 管道功能时未完全检索数据

Golang 溢出 int64

http - 使用 http 劫持者有什么好处

go - 这两个变体有什么区别?

image - Golang Overlay 图像总是黑白的

github - 如何使 godoc 链接到 github 上的源代码

docker - 在 Docker 中,无法 cd 进入安装了 "go get"的目录?