首页 >后端开发 >Golang >为什么我的 Go 日志没有写入文件?

为什么我的 Go 日志没有写入文件?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-21 22:08:17478浏览

Why Are My Go Logs Not Writing to File?

在 Go 中将日志写入文件

尝试使用标准 Go 日志记录包将日志写入文件时,用户可能会遇到问题日志文件已创建但仍为空。要解决此问题,必须了解将日志写入文件的正确方法。

在提供的代码中,您尝试了多种方法,包括:

  • 设置 os. Stderr 和文件作为 io.MultiWriter 用于日志输出。
  • 将文件设置为 io.Writer 用于日志
  • 直接将文件设置为日志记录的输出。

但是,所有这些方法都失败了,因为 os.Open("logfile") 以只读方式打开文件,不适合写日志。

正确的做法是使用 os.OpenFile("testlogfile", os.O_RDWR | os.O_CREATE | os.O_APPEND,0666)。这会打开文件进行读写,允许将日志附加到文件中。

通过添加此行并将日志输出设置到文件中,您可以成功将日志写入到 Go 中的文件中:

f, err := os.OpenFile("testlogfile", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
if err != nil {
    log.Fatalf("error opening file: %v", err)
}
defer f.Close()

log.SetOutput(f)
log.Println("This is a test log entry")

以上是为什么我的 Go 日志没有写入文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn