Comment enregistrer des messages vers plusieurs destinations dans Go
Lors de l'enregistrement de messages dans Go, il peut être nécessaire d'afficher les journaux à la fois sur la console et un fichier simultanément. Bien qu'il soit simple de diriger les messages uniquement vers un fichier à l'aide de log.SetOutput(logFile), il existe un moyen d'activer la journalisation dans les terminaux et les fichiers cibles.
Implémentation de plusieurs destinations
Pour réaliser la connexion à plusieurs destinations, utilisez io.MultiWriter. Comme son nom l'indique, MultiWriter facilite l'écriture simultanée sur plusieurs rédacteurs, similaire à la commande Unix tee(1).
Voici comment implémenter cela à l'aide de MultiWriter :
import ( "os" "io" "log" ) func main() { logFile, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) if err != nil { panic(err) } // Initialize io.MultiWriter to write to both file and console mw := io.MultiWriter(os.Stdout, logFile) // Set output to MultiWriter log.SetOutput(mw) }
Dans cet exemple , mw est une instance io.MultiWriter qui écrit à la fois dans os.Stdout (console) et dans le fichier journal. En définissant log.SetOutput(mw), tous les messages de journal suivants seront imprimés dans la console et enregistrés dans le fichier spécifié.
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!