我正在开发一个需要在多个进程中编写单个日志文件(由其路径标识)的功能。以前,每个进程都用来调用printf
终端上的日志流(标准输出)。现在我需要将输出目标更改为文件。所以我尝试使用freopen
将标准输出重定向到每个进程中的文件。
freopen(file_path, "a", stdout); //
但似乎效果不佳。缺少一些日志。实现这一目标的常见做法是什么?
顺便说一句,在我们的要求中,应该允许用户在文件和标准输出之间切换日志记录目标,因此当切换回终端时,第一个参数“file_path”可以是 tty。可以打电话freopen(tty, "a", stdout)
吗?