【发布时间】:2018-08-27 03:42:04
【问题描述】:
我想知道 Logging 类应该何时或多久刷新一次其流 - 为什么?它应该在每个日志之后刷新,还是等待流缓冲区填充然后刷新,还是介于两者之间?
为了进一步说明我的问题:
我的日志记录类引用了一些std::ostream stream 并使用operator<< 进行输入。我可以在每行输入后刷新,比如说使用std::endl; - 但我没有,而是我use stream << "\n" 只是强制换行。当流缓冲区已满或流 /logger 销毁时,我让刷新发生。
【问题讨论】:
-
一种合理的方法是根据日志消息级别刷新,即应该立即传递致命/错误消息,而不太关键的消息可以在缓冲区中停留一段时间。
-
@Ron 在 C++ 中,流是标准定义的非常明确的概念。这个问题对于 C++ 程序员来说是非常清楚的。
-
@RobertAndrzejuk 您想到了哪个流?
std::ostream、std::stringstream、std::fstream或者ios_base类作为起点?在time of asking,这些都不是问题。 -
第一次提出的问题没有“进一步说明我的问题:”部分。我已根据 Ron 的建议对其进行了编辑,但没有将他的评论归功于他。我的错。