package main
import (
"bytes"
"fmt"
"log"
)
func main() {
// Log into byte
var buf bytes.Buffer
logInfo := log.New(&buf, "[Info] ", log.Lshortfile)
logInfo.Print("Hello, log file!")
logInfo.Printf("Hello, %s", "crazy")
fmt.Print(&buf)
logInfo.Fatalln("Ut oh")
fmt.Print(&buf)
}
您好。我试图使用log.Fatal或log.Fatalln而不是log.New和os.Exit。然而,似乎记录器没有记录"哦哦" part(logInfo.Fatalln)
预计输出如下:
[Info] main.go:17: Hello, log file!
[Info] main.go:18: Hello, crazy
[Info] main.go:17: Hello, log file!
[Info] main.go:18: Hello, crazy
[Info] main.go:xx: Ut oh
以下是我得到的:
[Info] main.go:17: Hello, log file!
[Info] main.go:18: Hello, crazy
it seems like it didn't do anything from logInfo.Fatalln("Ut oh")
你可以告诉我我错过了什么吗?
谢谢
答案 0 :(得分:1)
log.Fatalln
退出您的应用,因此第二个fmt.Print(&buf)
无法执行。
更改记录器以写入os.Stderr
或其他内容,您将看到Ut oh
打印。