2009-08-11 15 views
32

मैं अपने सी # ऐप में लॉगिंग को कार्यान्वित करने के तरीके में देख रहा हूं - इसकी एक डीएलएल क्लास लाइब्रेरी है। किस लॉगिंग फ्रेमवर्क का व्यापक रूप से उपयोग किया जाता है - मेरे डीएलएल के उपयोगकर्ताओं को सबसे लचीलापन और कॉन्फ़िगर करने योग्यता क्या होगी? क्या log4j का सी # बराबर है?सी # में सबसे व्यापक रूप से उपयोग किए जाने वाले लॉगिंग फ्रेमवर्क क्या हैं?

+1

मैं ReflectInsight एक कोशिश http देना होगा: // http: //insightextensions.codeplex.com/ – code5

+0

यहां प्रवेश चौखटे की एक सूची है: https://github.com/quozd/awesome-dotnet/blob /master/README.md#logging –

उत्तर

29

.NET प्लेटफॉर्म के लिए log4j के समतुल्य log4net है और मुझे लगता है कि इसका व्यापक रूप से उपयोग किया जा रहा है।


संपादित (लेखक द्वारा नहीं): मामले में आप log4net का उपयोग नहीं करना चाहते हैं, तो यहाँ https://github.com/quozd/awesome-dotnet/blob/master/README.md#logging से विकल्प की एक किस्म है:

  • Essential Diagnostics - का विस्तार की इनबिल्ट सुविधाओं System.Diagnostics नाम स्थान लचीला प्रवेश प्रदान करने के लिए
  • NLog - NLog - उन्नत नेट और सिल्वरलाइट प्रवेश करने
  • Logazmic - ओपन सोर्स एनएलओ MVC
  • Logary के लिए Elmah - - सरकारी ELMAH साइट
  • Elmah MVC - विंडोज
  • ELMAH के लिए जी दर्शक Logary एक उच्च प्रदर्शन, बहु लक्ष्य प्रवेश, मीट्रिक, अनुरेखण और स्वास्थ्य की जांच मोनो और नेट के लिए पुस्तकालय है। DropWizard के .NET का जवाब। माइक्रो-सेवाओं के लिए बनाए गए कई लक्ष्यों का समर्थन करता है।
  • Log4Net - NoSQL युग के लिए एक बकवास लॉगिंग पुस्तकालय - अपाचे log4net पुस्तकालय
  • Serilog उत्पादन लक्ष्य की एक किस्म के प्रोग्रामर उत्पादन लॉग बयान मदद करने के लिए एक उपकरण है। एक उपयोग में आसान पैकेज में पारंपरिक और संरचित नैदानिक ​​लॉगिंग का सर्वोत्तम संयोजन है।
  • StackExchange.Exceptional - त्रुटि हैंडलर स्टैक एक्सचेंज नेटवर्क
  • Semantic Logging Application Block (SLAB) के लिए इस्तेमाल किया - System.Diagnostics.Tracing नाम स्थान (EventSource वर्ग) की इनबिल्ट सुविधाओं का विस्तार Azure टेबल्स सहित कई डूब करने के लिए लॉग इन करने, डेटाबेस, फ़ाइलें (JSON, एक्सएमएल, पाठ)। ईटीडब्ल्यू के माध्यम से इन-प्रोसेसिंग और आउट-ऑफ-प्रोसेस लॉगिंग का समर्थन करता है, और वास्तविक समय फ़िल्टरिंग/घटनाओं के एकत्रण के लिए आरएक्स का समर्थन करता है।
  • Foundatio - एक धाराप्रवाह लॉगिंग API जिसका उपयोग आपके पूरे एप्लिकेशन में संदेशों को लॉग करने के लिए किया जा सकता है।
  • Exceptionless - Exceptionless नेट ग्राहक
  • Loupe - केन्द्रीकृत नेट प्रवेश और निगरानी। [मालिकाना][नि: शुल्क टीयर]
  • elmah.io - नेट वेब अनुप्रयोगों ELMAH प्रयोग करने के लिए बादल लॉगिंग। लाइव जाने से पहले बग खोजें। शक्तिशाली खोज, एपीआई, स्लैक, गिटहब, विजुअल स्टूडियो और अधिक के साथ एकीकरण। [Free for OSS][$]
  • BugSnag - त्रुटियों को लॉग्स। स्टैक ट्रेस, सत्र, रिलीज इत्यादि जैसी उपयोगी नैदानिक ​​जानकारी शामिल है। निशुल्क स्तर है। [ओएसएस के लिए नि: शुल्क] [$]
+2

मैं लगभग सभी मेरे .NET अनुप्रयोगों में log4net का उपयोग करता हूं। हालांकि, मेरी कक्षाओं में सीधे लॉग 4नेट का संदर्भ नहीं है, मैं इंटरफ़ेस के पीछे इस आधारभूत संरचना को छिपाता हूं और निर्भरता इंजेक्शन का उपयोग करता हूं। – JohnRudolfLewis

+0

हम log4net का भी उपयोग कर रहे हैं। यह बहुत अच्छा है। अविश्वसनीय रूप से लचीला, अविश्वसनीय रूप से तेज़। –

+0

लॉग 4नेट का उपयोग करें और कभी वापस न देखें ... क्या SO4 लॉग 4net का उपयोग नहीं करता है? –

5

NLog सफलतापूर्वक कई परियोजनाओं में इस्तेमाल किया है।

1

मैं वर्षों से सफलतापूर्वक एनएलओजी का उपयोग कर रहा हूं और यह बहुत अच्छी तरह से प्रोजेक्ट है।

3

हम log4net पर कॉल करके लागू अपने स्वयं के लॉगिंग वर्गों का उपयोग करते हैं। यह स्रोत कोड में हजारों प्रत्यक्ष संदर्भों से परहेज करते हुए हमें इस लचीली और व्यापक रूप से उपयोग किए गए ढांचे का लाभ उठाने की अनुमति देता है।

-1

लोग एंटरप्राइज़ लाइब्रेरी का उपयोग कर रहे हैं। लेकिन यह सच हो सकता है कि डेवलपर्स इन दिनों अन्य उत्पादों पर स्विच कर रहे हैं।

मैं इसे देखता हूं और देखता हूं कि इसमें आवश्यक कार्यक्षमता है और बहुत अधिक ब्लोट नहीं है।

2

Enterprise Library. यह मजबूत है और माइक्रोसॉफ्ट से सीधे उनके सभी बेहतरीन प्रथाओं के साथ आता है। हम इसे अपनी सभी परियोजनाओं में उपयोग करते हैं। यह बहुत लचीला है और एक यूआई उपकरण है जिसका उपयोग आप कॉन्फ़िगरेशन फ़ाइल से लॉगिंग प्रबंधित करने के साथ गड़बड़ नहीं करना चाहते हैं।

+1

डाउनवॉटिंग क्योंकि एंटरप्राइज़ लाइब्रेरी मजबूत नहीं है। यह धीमा है, हास्यास्पद उपरि जोड़ता है, और एपीआई महान नहीं है, या तो। एंटरप्राइज़ लाइब्रेरी के बारे में आपकी राय के बावजूद –

+0

@ जॉन, यह अभी भी सबसे व्यापक रूप से उपयोग किया जाता है (संभवतः क्योंकि यह सीधे माइक्रोसॉफ्ट से आता है) और प्रश्न के अनुसार लचीलापन और कॉन्फ़िगरेशन की आवश्यकता है। मेरा मानना ​​है कि यह सवाल का एक पूरी तरह से वैध जवाब है। – desigeek

+0

इसका व्यापक रूप से उपयोग क्या करता है? EntLib.Logging में log4net (https://www.nuget.org/packages/log4net/) के लिए 2.6M की तुलना में NuGet पर 280K डाउनलोड (https://www.nuget.org/packages/EnterpriseLibrary.Logging/) है। वास्तव में एनएलओजी में 1.5 एम है और सेरिलोग में 130 के हैं।मेरा मुख्य आपत्ति है जिसे आपने इसे मजबूत कहा है। सभी टीमों ने मैंने इसका इस्तेमाल करके खेद व्यक्त किया। वैसे, "यह धीमा है और हास्यास्पद उपरि जोड़ता है" एक राय नहीं है। –

3

log4net लगभग निश्चित रूप से सबसे आम है।

लेकिन मैं Common.Logging का उपयोग करें - http://netcommon.sourceforge.net/ के रूप में यह मेरे लचीलापन प्रदान करता है

वर्तमान में उपयोग में, log4net, उद्यम लाइब्रेरी लॉगिंग, NLog, नाम करने के लिए नेट के लिए कार्यान्वयन प्रवेश करने की एक किस्म है सबसे अधिक लोकप्रिय। भिन्नता कार्यान्वयन का नकारात्मक पक्ष यह है कि वे एक सामान्य इंटरफ़ेस साझा नहीं करते हैं और इसलिए के उपयोगकर्ताओं पर आपकी लाइब्रेरी लागू करने के लिए एक विशेष लॉगिंग कार्यान्वयन लागू करते हैं।

Common.Logging पुस्तकालय रनटाइम पर एक विशिष्ट प्रवेश कार्यान्वयन चयन की अनुमति देना एक सरल अमूर्त परिचय देता है। इस प्रकार आप परिनियोजन तक उपयोग करने के लिए लाइब्रेरी लॉगिंग के निर्णय को स्थगित कर सकते हैं। के लिए एडाप्टर का उपयोग किसी विशेष लॉगिंग सिस्टम को सामान्य.लॉगिंग में प्लग करने के लिए किया जाता है।

+0

निर्णय को हटाने का क्या फायदा है? – BKSpurgeon

+1

वाह, यह 8 साल से अधिक पुराना है। सामान्य के रूप में। लॉगिंग ने कहा (और अभी भी करता है), आप तैनाती तक अपने निर्णय को स्थगित कर सकते हैं। उदाहरण के लिए; शायद आप अपने सिस्टम को whitelabel करना चाहते हैं? और उस कंपनी के लिए devops जो इसे होस्ट करना चाहते हैं एंटरप्राइज़ लाइब्रेरी लॉगिंग पसंद करते हैं, जबकि एक और devops टीम log4net पसंद करते हैं। – gef

+0

मैं Common.Logging (टिप के लिए धन्यवाद, BTW) उपयोग करने में रुचि है, लेकिन प्रदर्शन भूमि के ऊपर अमूर्त परत/क्रम संकल्प द्वारा किए गए के थके हुए हूँ। क्या आप शायद इससे संबंधित किसी भी मानक के बारे में जानते हैं? –

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

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