clog相关内容
我在 Unix 上开发一个 C++ 程序,该程序将消息发送到系统日志. 当前代码使用与 printf 类似的 syslog 系统调用. 现在我更愿意为此目的使用流,通常是内置的std::clog.但是 clog 只是将输出重定向到 stderr,而不是 syslog,这对我来说毫无用处,因为我也将 stderr 和 stdout 用于其他目的. 我在另一个答案中看到很容易将其重定
..
我在这里看到了一个有用的开始: http://www.cs.technion.ac.il/~imaman/programs/teestream.html 制作一个新的流,它可以同时进入堵塞和日志文件. 但是,如果我尝试将 clog 重新定义为新流,它将不起作用,因为新流与 clog 具有相同的 rdbuf(),因此以下内容无效: clog.rdbuf(myTee.rdbuf()
..
这里的一个相关问题显示了如何使用clog: 如何重新定义clog到三通到原始clog和日志文件? 现在的问题是如何同时为cerr这样做。有了上面的问题,cerr的输出不会出现在需要它的日志文件中。 目标是无论clog还是cerr结束在日志文件中一次,因此clog和cerr都需要转到共享日志文件。 解决方案 std :: cout和std :: cerr到输出文件:
..
当前代码使用系统日志系统调用,它的工作方式类似于printf。 现在我更喜欢使用流来代替,通常是内置的 std :: clog 。但是阻塞只是将输出重定向到stderr,而不是syslog,这对我来说是无用的,因为我也使用stderr和stdout用于其他目的。 我在另一个答案,很容易使用rdbuf()重定向到一个文件,但我看不到方法来应用该方法来调用syslog作为openlog不返
..
我在这里看到一个有用的开始: http://www.cs.technion.ac.il/~imaman/programs/teestream.html 并且它工作伟大的做一个新的流去阻塞和日志文件。 但是,如果我试图重新定义clog是新的流,它不工作,因为新的流具有与clog相同的rdbuf(),所以以下没有效果: clog.rdbuf(myTee。 rdbuf());
..