猿问

写入现有文件

这是代码:

tmp, _ := os.OpenFile(filepath.Join(this.dirPath , "Log_"+time.Now().Format(conf.FormatFile())), os.O_CREATE|os.O_WRONLY, os.ModePerm)
logrus.SetOutput(tmp)

它可以工作,但是如果再次运行程序并且同名文件已经存在,则不会对其进行写入,没有错误,不会写入日志,仅此而已。在我看来,这个 os.ModePerm 标志似乎有些东西。

该问题仅在 Linux 上重复出现。


犯罪嫌疑人X
浏览 108回答 1
1回答

慕莱坞森

您可能应该使用os.O_APPEND标志。tmp, _ := os.OpenFile(   filepath.Join(this.dirPath, "Log_"+time.Now().Format(conf.FormatFile())),    os.O_APPEND|os.O_WRONLY,    os.ModePerm, )
随时随地看视频慕课网APP

相关分类

Go
我要回答