所以我想将 Boost.Log 用于我的所有日志记录目的。我目前编写了一个类,其中包含实例化和设置辅助方法所需的所有操作。
问题是我想重载 << 运算符以 cout 方式使用它。我希望能够使用它来拥有不同的参数类型似乎是最大的问题。
这是我尝试过的:
template <typename T>
void trace::operator <<(T data)
{
std::string text=boost::lexical_cast<std::string>(data);
std::cout<<data<<std::endl;
BOOST_LOG_TRIVIAL(debug) << text;
}
但是,我知道这在逻辑上有点缺陷。为了能够将多个参数传递给 << 它需要是递归的。但是我有点困惑如何使用 boost log 来做到这一点。
我是否必须使用自定义接收器而不是方便的 boost 宏来定义日志系统?如果是这样,这是否支持 std::ostream 返回?我猜这将是返回值和流中的输入值。