Um gleichzeitig stdout und stderr eines Befehls anzuzeigen und zu protokollieren und dabei die Ausgabereihenfolge beizubehalten, können Sie das io der Standardbibliothek verwenden .MultiWriter.
<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>
Das obige ist der detaillierte Inhalt vonWie leite ich die Befehlsausgabe sowohl in die Konsole als auch in die Protokolldatei um und behalte dabei die Reihenfolge bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!