2015-06-29 39 views
-2
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。然而,這似乎是記錄器不記錄 「UT哦」 部分(logInfo.Fatalln)Golang logger致命

預期輸出如下:

[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

log.Fatalln退出您的應用程序,所以第二個fmt.Print(&buf)不會被執行。

更改您的記錄器寫入os.Stderr什麼,你會看到Ut oh打印。

+0

謝謝大衛! – Gon