के लिए ऑपरेटर तो मैं अपने सभी लॉगिंग उद्देश्यों के लिए Boost.Log का उपयोग करना चाहता हूं। मैंने वर्तमान में एक कक्षा लिखी है जिसमें तत्काल प्रक्रियाओं को स्थापित करने और स्थापित करने के सभी आवश्यक संचालन शामिल हैं।ओवरलोडिंग << बूस्ट लॉगिंग ऑब्जेक्ट
समस्या यह है कि मैं इसे < < ऑपरेटर को कोउट तरीके से उपयोग करने के लिए ओवरलोड करना चाहता हूं। मैं इसे अलग-अलग तर्क प्रकारों के लिए उपयोग करने में सक्षम होना चाहता हूं, यह सबसे बड़ा मुद्दा प्रतीत होता है। मैं समझता हूँ कि यह एक छोटे से दोषपूर्ण में यह तर्क है,
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 रिटर्न का समर्थन करता है? मुझे लगता है कि यह स्ट्रीम में वापसी मूल्य और इनपुट मूल्य होगा।
मैं इसे कस्टम ऑब्जेक्ट में उपयोग करने में सक्षम होना चाहता हूं। मेरे पास कई धागे हैं जिनके लिए मैं अपनी 'लॉगिंग' ऑब्जेक्ट चाहता हूं। – bge0