首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从源代码中禁用std::clog日志?

如何从源代码中禁用std::clog日志?
EN

Stack Overflow用户
提问于 2016-08-26 15:44:25
回答 2查看 1K关注 0票数 7

在开发代码时,我有许多控制台日志(std::clog)和一些控制台输出(std::cout)。但是现在,我想在线提交我的源代码,我想禁用所有控制台日志记录(clog),但保留控制台输出(cout)。

我当然可以注释我所有的//std::clog,但是有没有更好的方法来禁用我的源文件中的所有日志记录呢?

EN

回答 2

Stack Overflow用户

发布于 2016-08-26 15:52:25

您可以重定向clog,创建自己的ofstream,并使用rdbuf函数。

代码语言:javascript
复制
std::ofstream nullstream;
std::clog.rdbuf(nullstream.rdbuf());
票数 7
EN

Stack Overflow用户

发布于 2016-08-26 16:04:42

Andreas Papadopoulos' answer复制到了一个略有不同的问题--一定要在那里给他加票!

当然,你可以(example here):

代码语言:javascript
复制
int main() {
    std::clog << "First message" << std::endl;

    std::clog.setstate(std::ios_base::failbit);
    std::clog << "Second message" << std::endl;

    std::clog.clear();
    std::clog << "Last message" << std::endl;

    return 0;
}

输出:

代码语言:javascript
复制
First message
Last message

这是因为将流置于fail状态将使其静默丢弃任何输出,直到故障位被清除。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39161002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档