2010-05-14 10 views
5

मेरे प्रिज्म/सीएएल डब्ल्यूपीएफ आवेदन में एनएलओजी को लागू करने का सबसे अच्छा तरीका क्या होगा। यह एक शौकिया सवाल हो सकता है, मैं पूरे प्रिज्म ढांचे के लिए थोड़ा नया हूं :)एनएलओजी और प्रिज्म के उचित कार्यान्वयन

मैंने इंफ्रास्ट्रक्चर मॉड्यूल में एनएलओजी डीएल के संदर्भ को डालने और एक रैपर सिंगलटन कक्षा बनाने के बारे में सोचा। MyLogger। मेरी सोच एक केंद्रीय स्थान पर कहीं भी 1 लॉगर कार्यान्वयन का संदर्भ प्राप्त करने में सक्षम होना था कि सबकुछ संदर्भित है, और प्रिज्म में मुझे पता है कि एकमात्र चीज आपका इंफ्रास्ट्रक्चर मॉड्यूल होगा।

स्पष्ट मॉड्यूल प्रत्येक मॉड्यूल में एनएलओजी का संदर्भ जोड़ना है, लेकिन मुझे लगता है कि यह decoupling और उन सभी के उद्देश्य को हराने के लिए होगा।

कोई भी विचार सबसे मददगार होगा

सादर

उत्तर

4

हालांकि यह प्रिज्म में पहले से मौजूद इंटरफ़ेस का लाभ उठाता है मैं, अपने पहले विचार करने के लिए कुछ इसी तरह की सिफारिश करेंगे।

जबकि मुझे यकीन है कि सटीक तरीका NLog में आप के लिए उपलब्ध हस्ताक्षर, आप प्रिज्म के ILoggerFacade इंटरफ़ेस है, जो आम तौर पर अपने Bootstrapper में परिभाषित किया गया है का उपयोग कर विचार कर सकते हैं नहीं कर रहा हूँ (यह कैसे सेट किया जाता है का एक उदाहरण के लिए StockTraderRI आवेदन को देखने के तक)। आम तौर पर, यह Microsoft's Composite Logging interface के माध्यम से पास के रूप में कार्य करता है, लेकिन इसका कोई कारण नहीं है कि आप इसका उपयोग अपने स्वयं के लॉगर में करने के लिए क्यों नहीं कर सकते।

  1. यह प्रिज्म ढांचा है, जो अन्य डेवलपर्स आप बाद में एक अलग प्रवेश करने के लिए जाने का फैसला करते हैं
  2. से परिचित हो जाएगा में पहले से ही विद्यमान ILoggerFacade इंटरफ़ेस का उपयोग करता:

    कुछ कारणों से इस दृष्टिकोण पर विचार करने के ढांचा, तो आप सिर्फ ILoggerFacade कार्यान्वयन

पीछे वस्तु अन्य दृष्टिकोण आप का सुझाव के रूप में करने के लिए किया जाएगा बदलने के लिए: एक अंतरफलक है कि NLog के लिए एक सेवा को परिभाषित करता है बनाने के (या किसी मौजूदा NLog interf का पर्दाफाश एसईसी) अपने बुनियादी ढांचे डीएलएल में और अपने बूटस्ट्रैपर में उस सेवा के कार्यान्वयन को पंजीकृत करें। फिर आप अपने मॉड्यूल में लॉगर सेवा का संदर्भ प्राप्त करने के लिए अपने निर्भरता इंजेक्शन कंटेनर कर सकते हैं। नोट, हालांकि, यह वास्तव में केवल पुन: उत्पन्न करता है कि ILoggerFacade इंटरफ़ेस पहले से ही आपको क्या देता है।

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