将源中的std :: clog移动到输出文件

时间:2016-01-05 18:36:33

标签: c++ file debugging logging output

我的代码中有一条基本的调试消息,它会打印一条关于调用哪个函数的消息。

#ifdef _DEBUG
     std::clog << "message etc" << std::endl;
#endif

如何重定向输出以将消息发送到文本文件?

2 个答案:

答案 0 :(得分:4)

您可以设置与$_GET['start']关联的缓冲区,该缓冲区使用文件将其数据保存到。

这是一个演示概念的简单程序。

clog

答案 1 :(得分:0)

  

如何重定向输出以将消息发送到文本文件?

到目前为止重定向意味着从程序代码外部,它实际上取决于你的shell语法。根据{{​​3}} std::clog通常绑定到std::cerr

  
    

全局对象std::clogstd::wclog控制输出到实现定义类型的流缓冲区(派生自std::streambuf),与标准C输出流stderr相关联,但不同于std::cerr/std::wcerr,这些流不会自动刷新,也不会自动与cout绑定()&#39; d。

  

所以,例如在bash中你会做类似

的事情
$ program 2> Logs.txt

关于以编程方式重定向,您可以按this reference中所述进行操作,或在R Sahu's answer中进行说明。