是否有可能拦截cout和cerr?

时间:2017-01-12 15:08:47

标签: c++ std iostream

我有一个库,它使用std :: cout和std :: cerr将消息发送到控制台。

我知道,我可以在我的GUI应用程序中重定向它。但是,我想知道的是,如果有一种方法可以在消息实际刷新之前检测是否使用了cout或cerr?

背景:我希望能够更改文本颜色并添加一个字符串,如"错误:"如果文本来自cerr,则在邮件前面。

E.g。如果有一条线

cerr << "File not found" << endl;

在库中,是否有一种回调或事件我可以用来确保我可以执行

cerr << "Error: ";

在原始错误消息之前从我这边没有触及原始库?

请注意,重定向到问题redirect stdout/stderr to a string中的字符串会要求我知道库何时创建输出并对该字符串执行某些操作。相反,我正在寻找一种自动机制。

0 个答案:

没有答案