所以我有一个 go 应用程序,它有 3 个不同的日志输出文件,每个文件都有自己的记录器。当应用程序发生恐慌时,恐慌跟踪将始终写入最后一个要打开的记录器,即使恐慌的来源与此特定日志文件的域无关。
发生这种情况是因为为了编写恐慌,我将 stderr 输出重定向到记录器,最后一个被重定向到的记录器就是将要使用的记录器
fh, err := os.OpenFile(filename, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0777)
err = syscall.Dup2(int(fh.Fd()), int(os.Stderr.Fd()))
if err != nil {
fmt.Errorf("failed to redirect stderr to file: %v", err)
}
有没有办法让恐慌总是被写入特定的文件?或以某种方式将其重定向到所有文件?
谢谢