2015-12-15 48 views
2

在shell中,我使用go run file > output,但只有fmt.Print保存到輸出中。所有的log.Print仍然輸出到屏幕上!在Internet上搜索後,我發現可以設置輸出目錄的日誌,但是如何將log和fmt保存在同一個文件中?如何將fmt.Print和log.Print保存到Golang中的同一文件中

+1

的可能重複[我怎樣才能重定向和標準輸出和標準錯誤追加到使用bash文件?(http://stackoverflow.com/questions/876239/how-can-i-redirect-and- append-both-stdout-and-stderr-to-a-file-with-bash) –

回答

4

當fmt.PrintXXX函數寫入標準輸出時,記錄器寫入STDERR。

你有兩個選擇:

1)捕獲STDERR的文件。
擊炮彈一樣使用:

go run file > output 2>&1 

2)設置記錄儀的Outputos.Stdout

然後你運行像正常go run file > output,並同時記錄和FMT去同一個地方。

log.SetOutput(os.StdOut) 
+0

令人驚歎!你解決了我的困惑。 – Pao

相關問題