【发布时间】:2011-06-29 11:33:12
【问题描述】:
我正在寻找一种可移植的方式来在 C++ 中为日志记录类实现惰性求值。 假设我有一个简单的日志记录功能,例如
void syslog(int priority, const char *format, ...);
然后在 syslog() 函数中我们可以这样做:
if (priority < current_priority)
return;
所以我们从未真正调用格式化函数 (sprintf)。 另一方面,如果我们使用类似的日志流
log << LOG_NOTICE << "test " << 123;
总是执行所有的格式化,这可能需要很多时间。 是否有可能以在检查日志记录级别后执行格式化的方式实际使用 ostream 的所有优点(例如自定义
【问题讨论】:
标签: c++ logging iostream lazy-evaluation