要同時顯示和記錄命令的stdout 和stderr,同時保留輸出順序,您可以使用標準庫的io .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>
以上是如何在保持順序的同時將命令輸出重新導向到控制台和日誌檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!