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
895 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!

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