Maison >développement back-end >Golang >Comment réussir à écrire des journaux dans un fichier dans Go ?
Pour tenter de se connecter à un fichier à l'aide de Go, plusieurs approches ont été tentées, notamment :
func TestLogging(t *testing.T) { if !FileExists("logfile") { CreateFile("logfile") } f, err := os.Open("logfile") if err != nil { t.Fatalf("error: %v", err) } // attempt #1 log.SetOutput(io.MultiWriter(os.Stderr, f)) log.Println("hello, logfile") // attempt #2 log.SetOutput(io.Writer(f)) log.Println("hello, logfile") // attempt #3 log.SetOutput(f) log.Println("hello, logfile") }
Cependant, malgré la création du fichier journal (logfile), aucune information n'y a été écrite.
La solution consiste à utiliser os.OpenFile au lieu de os.Open, qui offre plus de contrôle sur les autorisations d'accès aux fichiers. Le code suivant écrit avec succès dans le fichier journal :
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")
Cette approche utilise os.OpenFile avec les indicateurs suivants :
En utilisant os.OpenFile, vous pouvez spécifier les autorisations d'accès au fichier nécessaires pour garantir que les journaux sont correctement écrits dans le fichier.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!