Maison > développement back-end > Golang > Comment rediriger la sortie de la commande Exec vers votre connexion en temps réel dans Golang ?

Comment rediriger la sortie de la commande Exec vers votre connexion en temps réel dans Golang ?

Patricia Arquette
Libérer: 2024-11-17 12:38:01
original
537 Les gens l'ont consulté

How to Redirect Exec Command Output to Your Log in Real Time in Golang?

Golang : copie de la sortie Exec dans le journal

Problème :

Lors de l'exécution d'un processus à l'aide de exec.Command, comment peut-on vous redirigez sa sortie vers votre journal en temps réel ?

Contexte :

L'approche conventionnelle consistant à attendre la fin du processus, puis à enregistrer sa sortie combinée n'est pas adapté aux processus de longue durée ou inachevés. Écrire sur la sortie standard en temps réel n'est pas non plus utile pour les services qui n'utilisent pas de terminaux.

Solution :

Pour capturer et enregistrer la sortie du processus en temps réel , vous pouvez utiliser des tuyaux :

stdout, err := cmd.StdoutPipe()
if err != nil {
    return 0, err
}

// Start the command after setting up the pipe
if err := cmd.Start(); err != nil {
    return 0, err
}

// Read the command's stdout line by line
in := bufio.NewScanner(stdout)

for in.Scan() {
    log.Printf(in.Text()) // Log each line
}

if err := in.Err(); err != nil {
    log.Printf("error: %s", err)
}
Copier après la connexion

Cette approche vous permet de capturer à la fois stdout et stderr en utilisant une goroutine.

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