Maison  >  Article  >  développement back-end  >  Comment se connecter simultanément à la console et au fichier dans Go ?

Comment se connecter simultanément à la console et au fichier dans Go ?

DDD
DDDoriginal
2024-11-11 01:19:02870parcourir

How to Log to Both Console and File Simultaneously in Go?

Connexion simultanée à la console et au fichier dans Go

Pour diriger les messages de journal vers un fichier, le code utilise généralement log.SetOutput(logFile) . Cependant, si vous souhaitez à la fois la sortie de la console et la journalisation dans un fichier, voici une solution utilisant io.MultiWriter.

Qu'est-ce que io.MultiWriter ?

Un io.MultiWriter permet d'écrire des données vers plusieurs destinations simultanément. Cela ressemble au comportement de la commande tee Unix.

Solution

Pour vous connecter à la fois à la console et à un fichier :

  1. Créez un fichier pour la journalisation :
logFile, err := os.OpenFile("log.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666)
if err != nil {
    panic(err)
}
  1. Créez un MultiWriter pour combiner les sorties de console et de fichier :
mw := io.MultiWriter(os.Stdout, logFile)
  1. Définissez la destination de sortie par défaut pour journaux :
log.SetOutput(mw)

Exemple

package main

import (
    "log"
    "os"
    "io"
)

func main() {
    logFile, err := os.OpenFile("log.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666)
    if err != nil {
        panic(err)
    }

    mw := io.MultiWriter(os.Stdout, logFile)
    log.SetOutput(mw)

    log.Println("This is a log message")
}

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