Golang logger致命

时间:2015-06-29 13:04:53

标签: logging go

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")
你可以告诉我我错过了什么吗? 谢谢

1 个答案:

答案 0 :(得分:1)

log.Fatalln退出您的应用,因此第二个fmt.Print(&buf)无法执行。

更改记录器以写入os.Stderr或其他内容,您将看到Ut oh打印。