如何将fmt.Print和log.Print保存到Golang中的同一文件中

时间:2015-12-15 16:16:22

标签: shell go

在shell中,我使用go run file > output,但只有fmt.Print被保存到输出中。所有log.Print仍然输出到屏幕!我在互联网上搜索后,发现我可以设置日志的输出目录,但是如何在同一个文件中保存日志和文件?

1 个答案:

答案 0 :(得分:6)

当fmt.PrintXXX函数写入STDOUT时,记录器写入STDERR。

您有两种选择:

1)将STDERR捕获到文件中 像shell一样使用Bash:

go run file > output 2>&1

2)将记录器的Output设置为os.Stdout

然后你像普通go run file > output一样运行,记录器和fmt都转到同一个地方。

log.SetOutput(os.StdOut)