栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在实时输出时,如何将命令的stdout和stderr重定向到控制台和日志文件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在实时输出时,如何将命令的stdout和stderr重定向到控制台和日志文件?

正如我在评论部分中所述,可以使用MultiWriter来实现

package mainimport (    "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)    }}

在声明命令时以及在运行命令之前,只需指定Stdout和Stderr使用上面定义的MultiWriter。该MultiWriter实例包含一个日志文件和标准输出。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409589.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号