使用参数os.Stdout和文件创建io.MultiWriter。将Cmd.Stdout设置为multiwriter。运行命令。
cmd := exec.Command(name, args...) cmd.Stdout = io.MultiWriter(os.Stdout, file) err := cmd.Run()
如果要逐行写入log.Debugf和其他文件,请执行以下操作:
go func() { scanner := bufio.NewScanner(stdout) writer := bufio.NewWriter(io.MultiWriter(os.Stdout, file)) for scanner.Scan() { log.Debugln(scanner.Text()) writer.Write(scanner.Bytes()) writer.WriteByte('n') // add line separator } writer.Flush()}()此代码假定输入中的行分隔符为 n。



