3 回答
TA贡献1773条经验 获得超3个赞
os.Open() 过去一定有不同的工作方式,但这对我有用:
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 文档,os.Open()不能为log.SetOutput,因为它打开文件“阅读:”
func Open
func Open(name string) (file *File, err error) Open打开命名文件进行读取。如果成功,可以使用返回文件的方法进行读取;关联的文件描述符具有 mode O_RDONLY。如果有错误,它将是 类型*PathError。
编辑
检查defer f.Close()后移至if err != nil
TA贡献1831条经验 获得超9个赞
我通常在屏幕上打印日志并写入文件。希望这可以帮助某人。
f, err := os.OpenFile("/tmp/orders.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
log.Fatalf("error opening file: %v", err)
}
defer f.Close()
wrt := io.MultiWriter(os.Stdout, f)
log.SetOutput(wrt)
log.Println(" Orders API Called")
- 3 回答
- 0 关注
- 191 浏览
添加回答
举报