英文:
how to save fmt.Print and log.Print into same file in Golang
问题
在shell中,我使用go run file > output
命令,但只有fmt.Print
的输出保存到了output
文件中。所有的log.Print
仍然输出到屏幕上!在我在互联网上搜索之后,我发现可以为日志设置输出目录,但是如何将日志和fmt
同时保存到同一个文件中呢?
英文:
In shell, I use go run file > output
, but only fmt.Print are saved into output. All the log.Print still output to the screen! And after I searched on the Internet, I found I can set ouput directory for log, but how can I save both log and fmt in the same file?
答案1
得分: 6
日志记录器将日志写入 STDERR,而 fmt.PrintXXX 函数将日志写入 STDOUT。
你有两个选择:
然后你可以像平常一样运行 go run file > output
,日志记录器和 fmt 都会输出到同一个地方。
log.SetOutput(os.StdOut)
英文:
The logger writes to STDERR while fmt.PrintXXX functions write to STDOUT.
You have two choices:
-
Capture STDERR to the file.
Bash like shells use:go run file > output 2>&1
Then you run like normal go run file > output
and both the logger and fmt go to the same place.
log.SetOutput(os.StdOut)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论