Maison > développement back-end > Golang > 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
Libérer: 2024-11-11 01:19:02
original
912 Les gens l'ont consulté

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)
}
Copier après la connexion
  1. Créez un MultiWriter pour combiner les sorties de console et de fichier :
mw := io.MultiWriter(os.Stdout, logFile)
Copier après la connexion
  1. Définissez la destination de sortie par défaut pour journaux :
log.SetOutput(mw)
Copier après la connexion

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

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal