Maison > développement back-end > Golang > Comment réussir à écrire des journaux dans un fichier dans Go ?

Comment réussir à écrire des journaux dans un fichier dans Go ?

Patricia Arquette
Libérer: 2024-12-13 07:06:13
original
594 Les gens l'ont consulté

How to Successfully Write Logs to a File in Go?

Écriture de 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")
}
Copier après la connexion

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")
Copier après la connexion

Cette approche utilise os.OpenFile avec les indicateurs suivants :

  • os.O_RDWR : ouvre le fichier en lecture-écriture mode
  • os.O_CREATE : Crée le fichier si ce n'est pas le cas exist
  • os.O_APPEND : ajoute des données au fichier s'il existe

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal