Maison >développement back-end >Golang >Pourquoi mes journaux Go n'écrivent-ils pas dans un fichier ?

Pourquoi mes journaux Go n'écrivent-ils pas dans un fichier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-21 22:08:17478parcourir

Why Are My Go Logs Not Writing to File?

Écriture de journaux dans un fichier dans Go

Lorsqu'ils tentent d'écrire des journaux dans un fichier à l'aide du package de journalisation Go standard, les utilisateurs peuvent rencontrer des problèmes où le fichier journal est créé mais reste vide. Pour résoudre ce problème, il est essentiel de comprendre la bonne approche pour écrire des journaux dans un fichier.

Dans le code fourni, vous avez essayé plusieurs approches, notamment :

  • Configuration du système d'exploitation. Stderr et le fichier comme io.MultiWriter pour la sortie du journal.
  • Définition du fichier comme io.Writer pour le journal sortie.
  • Définition directe du fichier comme sortie pour la journalisation.

Cependant, toutes ces méthodes ont échoué car os.Open("logfile") ouvre le fichier en lecture seule , ce qui le rend impropre à l'écriture de journaux.

L'approche correcte consiste à utiliser os.OpenFile("testlogfile", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666). Cela ouvre le fichier à la fois en lecture et en écriture, permettant aux journaux d'être ajoutés au fichier.

En ajoutant cette ligne et en définissant la sortie du journal dans le fichier, vous pouvez réussir à écrire des journaux dans un fichier dans Go :

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")

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn