Heim > Backend-Entwicklung > Golang > Wie leite ich die Exec-Befehlsausgabe in Echtzeit in Golang in Ihr Protokoll um?

Wie leite ich die Exec-Befehlsausgabe in Echtzeit in Golang in Ihr Protokoll um?

Patricia Arquette
Freigeben: 2024-11-17 12:38:01
Original
538 Leute haben es durchsucht

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

Golang: Exec-Ausgabe in Protokoll kopieren

Problem:

Wie kann das beim Ausführen eines Prozesses mit exec.Command erfolgen? Sie leiten die Ausgabe an Ihr Login weiter Echtzeit?

Kontext:

Der herkömmliche Ansatz, auf den Abschluss des Prozesses zu warten und dann seine kombinierte Ausgabe zu protokollieren, ist nicht für lang laufende oder unvollendete Prozesse geeignet . Das Schreiben auf stdout in Echtzeit ist auch für Dienste, die keine Terminals verwenden, nicht hilfreich.

Lösung:

Um Prozessausgaben in Echtzeit zu erfassen und zu protokollieren , können Sie Pipes verwenden:

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)
}
Nach dem Login kopieren

Dieser Ansatz ermöglicht es Ihnen, sowohl stdout als auch stderr mithilfe einer Goroutine zu erfassen.

Das obige ist der detaillierte Inhalt vonWie leite ich die Exec-Befehlsausgabe in Echtzeit in Golang in Ihr Protokoll um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage