Ricevo un descrittore di file non valido durante il tentativo di aggiungere un file di registrazione alla mia routine go.Descrittore file errato Golang
write ./log.log: bad file descriptor
il file esiste e ha 666 per le autorizzazioni. All'inizio ho pensato che forse è perché ognuno di loro sta provando ad aprire il file allo stesso tempo. Ho implementato un mutex per cercare di evitarlo ma ho ottenuto lo stesso problema quindi l'ho rimosso.
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
}
}
}()
Confermo di poter riprodurre sul mio computer. – HectorJ