Golang mauvais descripteur de fichier

Je suis un mauvais descripteur de fichier lorsque vous essayez d'ajouter à un fichier de journalisation dans ma routine.

write ./log.log: bad file descriptor

Le fichier existe et a 666 pour les autorisations. Au début, je pensais bien peut-être que c'est parce que chacun d'eux est en essayant d'ouvrir le fichier en même temps. J'ai mis en place un mutex pour essayer d'éviter cela, mais eu le même problème donc je l'ai enlevé.

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
        }
    }
}()

source d'informationauteur Jared Mackey