Поэтому я хочу использовать 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? Если это так, то поддержка std :: ostream возвращается? Я предполагаю, что это будет возвращаемое значение и входное значение в поток.
Я хочу использовать это в пользовательском объекте. У меня есть несколько потоков, для которых я хочу свой собственный «журнал». – bge0