2010-10-29 20 views
8

मैं कमांड लाइन प्रोग्राम के लिए उपयोगकर्ताओं के समूह में अपने log4net आउटपुट को ईमेल करने में सक्षम होने के लिए एक रास्ता तलाश रहा हूं। अभी, मैं लॉग फ़ाइल पढ़ रहा हूं लेकिन मुझे फ़ाइल को रिलीज़ करने के लिए log4net.LogManager.Shutdown() को कॉल करना है, इसलिए मैं इसे पढ़ सकता हूं, और मुझे लॉग फ़ाइल नाम को हार्ड कोड करना होगा या इसके लिए log4net कॉन्फ़िगरेशन को पार्स करना होगा । मैं एक अतिरिक्त ऐपेंडर को कॉन्फ़िगर करने में सक्षम होना चाहता हूं जो स्मृति स्थान में लॉग इन करता है जिसे मैं तब से पढ़ सकता हूं।क्या कोई लॉग 4नेट मेमोरी एपेंडर है?

मुझे इस कार्यक्षमता के लिए एक नया एपेंडर बनाने में कोई फर्क नहीं पड़ता, लेकिन मुझे यकीन नहीं है कि सबसे अच्छा विकल्प क्या है। मैं निश्चित रूप से अपना लॉग आउटपुट प्राप्त करने के लिए किसी अन्य फ़ाइल, डेटाबेस या बाहरी डेटा स्रोत पर भरोसा नहीं करना चाहता हूं।

उत्तर

14

हां, log4net.Appender.MemoryAppender है। इसमें GetEvents() विधि है जिसका उपयोग आप लॉग इन किए गए ईवेंट प्राप्त करने के लिए कर सकते हैं।

+2

अब, मैंने परिशिष्ट में निर्माण की सूची देखी और उसे नहीं देखा। मैं कसम खाता हूँ कि मुझे अंधेरा होना चाहिए। मुझे इस पर फोन करने के लिए +1। – Chris

1

क्या इस उपयोग के लिए SmtpAppender अधिक उपयुक्त नहीं होगा? यह सीधे ईमेल करता है।

+1

मैं सहमत हूं कि बफरिंग संपत्ति को बैचिंग को कॉन्फ़िगर करने के लिए भी इस्तेमाल किया जा सकता है; लेकिन अगर आप प्रति दिन एक ईमेल या ऐसा नहीं चाहते थे। –

संबंधित मुद्दे