之前一直为了偷懒,将日志的答应全部使用的是log.Fatal,结果发现,一旦出现问题,程序直接退出了。
研究源码发现:
func Fatal(v ...interface{}) {
std.Output(2, fmt.Sprint(v...))
os.Exit(1)
}
可以明显的看到:
使用log.Fatal 和 log.Panic 相关的函数时,会调用os.Exit(1)退出程序。
总结
所以说,在平时的使用过程中,尽量换用 log.Print 。该函数在输出日志的时候并不会调用os.Exit 进行退出。
func Print(v ...interface{}) {
std.Output(2, fmt.Sprint(v...))
}