📺
Go の log.Fatal は気軽に使ったあかん!
log.Fatalはアプリケーションの実行が終了されるので、気軽に使うのはやめましょう!
log
pkgの中身は以下
// Fatal is equivalent to Print() followed by a call to os.Exit(1).
func Fatal(v ...interface{}) {
std.Output(2, fmt.Sprint(v...))
os.Exit(1)
}
os.Exit(1)
されてるので、アプリケーションの実行が終了される。
なのでとりあえずログに吐きたい時は log.Println
などにしましょう。
log.Println
だとexitされないです。
log.Println
のsrcは以下
// Println calls Output to print to the standard logger.
// Arguments are handled in the manner of fmt.Println.
func Println(v ...interface{}) {
std.Output(2, fmt.Sprintln(v...))
}
参照
Discussion