gpt4 book ai didi

file - go - 将 stderr 重定向到文件和 stdout

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:34 26 4
gpt4 key购买 nike

我想将 stderr 重定向到一个文件并重定向到 stdout

我知道如何使用 dup2stderr 重定向到文件:
err := syscall.Dup2(int(fatal_logfile.Fd()), int(os.Stderr.Fd()))

但后来我不知道如何将其重定向到 stdout。就像将一个流源“复制”到两个不同的流。

请注意,此功能在应用程序启动时调用,并用于重定向 stderr,例如在发生 panic 时。然后在这种情况下我不能使用 recover(即使我运行了很多 goroutine)。

有人知道如何解决这个问题吗?


另一个可行的解决方案是在调用二进制文件时使用 pipestee,但是否可以在应用程序内部定义相同的行为/逻辑?我希望它默认以这种方式运行。

./app_bin 2>>(tee -a fatal.log)

最佳答案

writer := io.MultiWriter(os.Stdout, os.Stderr)

无论写入writer 的内容都会写入os.Stdoutos.Stderr

关于file - go - 将 stderr 重定向到文件和 stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39773599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com