मैं एक लकड़हारा वर्ग ऐसा है कि इस तरह की एक कार्यक्षमता के साथ बनाना चाहते हैं:कैसे मैं अदालत शैली इंटरफेस के साथ एक लकड़हारा वर्ग लिख सकता हूँ (लकड़हारा << "त्रुटि:" << वैल << endl;)
Logger log;
log << "Error: " << value << "seen" << endl;
यह मुझे एक कस्टम प्रारूपित संदेश मुद्रित करना चाहिए। जैसे "2009/12/09 11:22:33 त्रुटि 5 देखा"
मेरे साधारण क्लास वर्तमान में इस तरह दिखता है:
class Logger {
private:
ostringstream oss;
public:
template <typename T>
Logger& operator<<(T a);
}
template <typename T>
Logger& Logger::operator<<(T a) {
oss << a;
return *this;
}
void functionTest(void) {
Logger log;
log << "Error: " << 5 << " seen";
}
यह ओएसएस सही ढंग से बफर "त्रुटि: 5 बार देखा गया" के लिए कारण होगा। लेकिन मुझे नहीं पता कि मुझे कौन सा फ़ंक्शन लिखना/संशोधित करना है ताकि स्क्रीन पर कुछ प्रिंट हो। क्या कोई यह जानता है कि इसे कैसे काम करना है या क्या इस वर्ग को मेरी कार्यक्षमता के काम के लिए डिजाइन करने का कोई और तरीका है?
प्रश्न समाप्त करने के लिए उपयोग करने के लिए बाध्य समाप्त कर रहे हैं:। टाइम स्टैम्प। क्या आप समय स्टाम्प आउट करना चाहते हैं: 1) प्रत्येक अभिव्यक्ति 2) केवल प्रत्येक पंक्ति की शुरुआत में। क्या आप चाहते हैं कि लाइन स्वयं को समाप्त कर दे (आपके फ़ंक्शनटेस्ट() के अनुसार) मूल रूप से आपको थोड़ा और होना चाहिए उन शर्तों के बारे में विशिष्ट है जिनके अंतर्गत टाइम स्टैम्प जोड़ा गया है। क्या आप दोनों को कंसोल फ़ाइल में लॉगिंग कर रहे हैं? आपको एक विशेष कक्षा की आवश्यकता क्यों है और आप मानक स्ट्रीम का उपयोग क्यों नहीं कर सकते? –
मार्टिन, यह केवल नमूना वर्ग है मैंने मूल लॉगर क्लास को कोउट शैली के उपयोग के बारे में केवल मुद्दे के साथ छीन लिया लॉगर का –