Maison > développement back-end > Golang > Comment rediriger la sortie de la commande vers la console et le fichier journal tout en maintenant l'ordre ?

Comment rediriger la sortie de la commande vers la console et le fichier journal tout en maintenant l'ordre ?

DDD
Libérer: 2024-11-04 03:42:01
original
221 Les gens l'ont consulté

How to Redirect Command Output to Both Console and Log File while Maintaining Order?

Redirection de la sortie de commande vers la console et le fichier journal

Pour afficher et enregistrer simultanément la sortie standard et le stderr d'une commande tout en préservant l'ordre de sortie, vous pouvez utiliser l'io de la bibliothèque standard .MultiWriter.

Extrait de code

<code class="go">package main

import (
    "io"
    "log"
    "os"
    "os/exec"
)

func main() {
    // Logging capability
    f, err := os.OpenFile("log.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
    if err != nil {
        log.Fatalf("Error opening file: %v", err)
    }
    defer f.Close()
    mwriter := io.MultiWriter(f, os.Stdout)
    cmd := exec.Command("ls")
    cmd.Stderr = mwriter
    cmd.Stdout = mwriter
    err = cmd.Run() //blocks until sub process is complete
    if err != nil {
        panic(err)
    }
}</code>
Copier après la connexion

Explication

  1. Ouvrez un fichier pour la journalisation et créez un MultiWriter qui combine le fichier et la sortie standard.
  2. Créez une commande et spécifiez que stdout et stderr doivent utiliser le MultiWriter.
  3. Exécutez la commande, qui imprimera la sortie sur la console et le fichier journal en temps réel tout en conservant l'ordre de sortie d'origine. .

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