要同时显示和记录命令的 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中文网其他相关文章!