सरल प्रश्न: शीर्षक देखें। मैं .NET 3.5 का उपयोग कर रहा हूँ।क्या .NET में अंतर्निहित लॉगिंग फ्रेमवर्क है?
विस्तार: मैं एक प्लगइन बना रहा हूं जिसे रनटाइम पर किसी तृतीय पक्ष एप्लिकेशन में लोड किया जाएगा। मुख्य एप्लिकेशन लॉग 4नेट को लॉगिंग फ्रेमवर्क के रूप में उपयोग करता है। हालांकि, यह रूट लॉगर का पर्दाफाश नहीं करता है इसलिए हम लॉग इन करने में असमर्थ हैं। (मैंने इस मुद्दे को अपस्ट्रीम डेवलपर्स के साथ उठाया है और वे भविष्य में रिलीज के लिए इसे ठीक कर देंगे, इस बीच मुझे किसी और चीज के साथ आने की आवश्यकता है)
सिस्टम की एक और सीमा यह है कि जब उसे अधिसूचना प्राप्त होती है कि यह एक प्लगइन लोड करना चाहिए जो स्थानीय सिस्टम पर मौजूद नहीं है, यह उस प्लगइन को उस सर्वर से खींच देगा जो उससे जुड़ा हुआ है (यदि यह सर्वर पर मौजूद है), लेकिन यह केवल उस असेंबली को खींच सकता है जहां प्लगइन रहता है । इसका मतलब यह नहीं है कि प्लगइन के साथ कोई बाहरी असेंबली और नहीं .config या कोई अन्य फाइल तैनात की जा सकती है।
जो मुझे केवल मेरे अंतर्निहित .NET असेंबली और मेरे प्लगइन असेंबली में सबकुछ छोड़ देता है। हालांकि, मैं खुद को एक और लॉगिंग फ्रेमवर्क बनाकर पहिया को फिर से शुरू नहीं करना चाहता हूं, इसलिए मैं जानना चाहता हूं कि इस समस्या का सबसे अच्छा तरीका क्या होगा।
मैं एक फ़ाइल में लॉगिंग करना पसंद करूंगा और विंडोज इवेंट लॉग में डंपिंग सामग्री से बचना चाहता हूं।
"यह रूट लॉगर का पर्दाफाश नहीं करता है" - क्या आप सिर्फ log4net.dll का संदर्भ नहीं जोड़ सकते हैं और सीधे रूट लॉगर तक पहुंच सकते हैं? – Joe
मैंने अपना खुद का रूट लॉगर बनाने और माता-पिता के अनुप्रयोगों का उपयोग करने का प्रयास करने का प्रयास नहीं किया है। Log4net केवल प्रति एप्लिकेशन एक रूट लॉगर की अनुमति देता है और मूल एप्लिकेशन पहले से ही एक बना रहा है। अगर उनका कहीं खुलासा हुआ तो मैं इसका उपयोग कर पाऊंगा, लेकिन ऐसा नहीं है। मुझे यकीन नहीं है कि यह प्रति ऐप या प्रति ऐपडोमेन में एक रूट लॉगर है।यदि यह प्रति ऐपडोमेन में से एक है और मैं अपनी प्लगइन से अपना ऐपडोमेन बनाने का प्रयास कर सकता हूं और फिर अपना रूट लॉगर बना सकता हूं। – alimbada