【发布时间】:2016-08-26 07:44:25
【问题描述】:
在开发代码时,我有许多控制台日志记录 (std::clog) 和一些控制台输出 (std::cout)。但是现在,我想在线提交我的源代码,我想禁用所有控制台日志记录 (clog) 但保留控制台输出 (cout)
我当然可以评论我所有的//std::clog,但是有没有更好的方法来禁用我的源文件中的所有日志记录?
【问题讨论】:
-
this answer 适合您的问题吗?
-
或者,
std::filebuf f; auto old = std::clog.rdbuf(&f);在 main 开头,std::clog.rdbuf(old);在结尾可以解决问题。 -
@Quentin 它可以工作
std::clog.setstate(std::ios_base::failbit);仅删除clog消息,并仍然保留cout。谢谢...(你能把它写成答案吗)。 -
无论如何,它与使用
ofstream.rdbuf()有什么不同,哪个更好?似乎.setstate(std::ios_base::failbit);比使用rdbuf更短且更简单地删除阻塞消息 -
@Yeo 我已将 Andreas 的答案复制为 CW。