【问题标题】:controlling output from external libraries控制外部库的输出
【发布时间】:2018-03-24 07:56:33
【问题描述】:

在我的过程中,我有 LOG 宏,这些宏将文本输出到 std::cout 和文件。我的程序与将其文本直接输出到 std::cout 的 3rd 方库链接。我无法控制外部库中的代码,并且它们公开的 API 没有将输出重定向到文件的选项。有没有办法我仍然可以控制输出并将其重定向到 std::cout 和文件?

【问题讨论】:

    标签: c++ linux


    【解决方案1】:

    我不是 100% 确定共享库,但原则上这应该是一样的。只需将 stdout 和 stderr 重定向到新的流缓冲区即可。

    【讨论】:

    • 这实际上不是一个坏主意,我会看看我的设置是否可行。
    • 问题是我使用包含转义字符的颜色打印到 std::cout,因此相同的消息打印到没有颜色字符的文件,我不能简单地将所有内容从 std::cout 转发到文件。不过我还是喜欢你的想法,我看看能不能用别的方式。
    • 不将 std::cout 重定向到文件会导致我的输出不被写入屏幕吗?我希望屏幕上的输出保持不变,只是能够将来自外部库的日志添加到我的日志文件中
    猜你喜欢
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多