相关疑难解决方法(0)

Golang - 将Exec输出复制到Log

我想及时重定向流程的输出log.如果我等待这个过程完成,我可以这样做:

cmd := exec.Command("yes", "Go is awesome") // Prints "Go is awesome", forever 
out, err := cmd.CombinedOutput()
log.Printf("%s", out)
Run Code Online (Sandbox Code Playgroud)

但是,如果该过程需要很长时间或者没有完成,则这不太有用.我知道我可以像这样实时写入stdout:

cmd := exec.Command("yes")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Run()
Run Code Online (Sandbox Code Playgroud)

这并不能帮助我,因为我正在编写一个不写入终端的服务.我正在寻找能让我做类似的事情:

cmd := exec.Command("yes")
cmd.Stdout = log.Stdout
cmd.Stderr = log.Stdout
cmd.Run()
Run Code Online (Sandbox Code Playgroud)

log不能直接访问其作者,因此这是不可能的.当然我不是唯一遇到这个问题的人,这通常是怎么做的?

go

13
推荐指数
2
解决办法
8047
查看次数

标签 统计

go ×1