写入现有文件
Writing to existing file
代码如下:
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 上重复出现。
您可能应该使用 os.O_APPEND
标志。
tmp, _ := os.OpenFile(
filepath.Join(this.dirPath, "Log_"+time.Now().Format(conf.FormatFile())),
os.O_APPEND|os.O_WRONLY,
os.ModePerm,
)
代码如下:
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 上重复出现。
您可能应该使用 os.O_APPEND
标志。
tmp, _ := os.OpenFile(
filepath.Join(this.dirPath, "Log_"+time.Now().Format(conf.FormatFile())),
os.O_APPEND|os.O_WRONLY,
os.ModePerm,
)