【发布时间】:2016-04-18 17:27:54
【问题描述】:
我看到很多类似这样的Go 代码:
func main() {
response, _, err := http.Get("http://golang.org/")
if err != nil {
fmt.Printf("%s", err)
os.Exit(1)
}
defer response.Body.Close()
contents, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Printf("%s", err)
os.Exit(1)
}
fmt.Printf("%s\n", string(contents))
}
我的问题是:
在生产中,我应该保留这些
fmt.Printf语句吗?愚蠢的问题我确定,但只是检查对于生产代码和开发代码,您推荐哪些日志记录选项?
【问题讨论】:
-
不知道为什么代码格式化不起作用,我尝试修复了几次。
-
在不了解您的应用程序的情况下很难回答这个问题。上面的代码在某些情况下是可以接受的,在其他情况下是不可接受的。
-
请注意,使用
log.Fatal*()函数集可以很好地完成“打印和退出”序列。 -
我认为在生产代码中使用
fmt包没有任何问题。除非fmt.Sprintf有问题,否则我不知道。
标签: logging go production-environment