不能使用'>'或者'>>'从log.Println()和log.Printf()写入文件

时间:2015-07-07 16:45:59

标签: unix logging go

我尝试使用>>像往常一样使用Go项目写入文件,它不起作用。

./main >> info.loggo run main.go >> info.log

我以root身份运行,并且我尝试将文件权限更改为755,但仍然在info.log中注意到。我也试过ls >> ls.log它运作正常。 所以我觉得我的代码有问题。我使用的只有log.Println()log.Printf()

我的代码在Ubuntu 12.04.5 LTS上运行(GNU / Linux 3.13.0-32-generic x86_64)

2 个答案:

答案 0 :(得分:7)

Go {'{3}}写给stderr。您应该在shell脚本中使用2>2>>及其朋友,或者创建自己的写入stdout的记录器。

答案 1 :(得分:1)

我不认为您正在写入stdout,请尝试使用fmt而不是日志。如果默认fmt.Printlnfmt.Printf不起作用,则此处的包详细信息可以获取特定于stdout或stderr的io.Writer,这肯定会起作用。文档在这里standard logger