したがって、すべてのロギング目的で 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;
}
ただし、これはロジックに少し欠陥があることを理解しています。複数の引数を << に渡すには、再帰的である必要があります。しかし、ブーストログでこれを行う方法について少し混乱しています。
便利なブースト マクロの代わりに、カスタム シンクを使用してログ システムを定義する必要がありますか? もしそうなら、これは std::ostream の戻り値をサポートしますか? これは、戻り値とストリームへの入力値になると思います。