尝试附加到我的 go 例程中的日志文件时,我得到了一个错误的文件描述符。
write ./log.log: bad file descriptor
该文件存在并且具有 666 的权限。一开始我觉得很好,也许是因为他们每个人都试图同时打开文件。我实现了一个互斥锁来尝试避免这种情况,但遇到了同样的问题,所以我将其删除。
logCh := make(chan string, 150)
go func() {
for {
msg, ok := <-logCh
if ok {
if f, err := os.OpenFile("./log.log", os.O_APPEND, os.ModeAppend); err != nil {
panic(err)
} else {
logTime := time.Now().Format(time.RFC3339)
if _, err := f.WriteString(logTime + " - " + msg); err != nil {
fmt.Print(err)
}
f.Close()
}
} else {
fmt.Print("Channel closed! \n")
break
}
}
}()
慕仙森
慕神8447489
慕无忌1623718
相关分类