मुझे लगता है कि लॉग 4नेट आपके लिए सूचीबद्ध हर कुछ कर रहा है।
प्लग करने योग्य श्रोताओं को परिशिष्ट की तरह लगता है - उनमें से बहुत सारे हैं और वास्तव में मैंने रोलिंग लॉग फ़ाइल को भी हमेशा लॉग इन करने के लिए है। लॉग (फ़ाइल एसोसिएशन के लिए), ईमेल एपेंडर को एक सीसी फ़ील्ड जोड़ा, और आखिरकार ट्यून किया रंगीन कंसोल एपेंडर के लिए मेरे पसंदीदा मूल्य। अगर मैं ऐसा बोल्ड हो सकता है - मेरी रंगीन सांत्वना खुशी:
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<!-- Can Use:
Blue
Green
Red
White
Yellow
Purple
Cyan
HighIntensity
-->
<mapping>
<level value="FATAL" />
<foreColor value="Yellow, HighIntensity" />
<backColor value="Red" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Purple, HighIntensity" />
</mapping>
<mapping>
<level value="WARN" />
<backColor value="Blue" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="INFO" />
<backColor value="Green" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="DEBUG" />
<foreColor value="White" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />-->
<!--<conversionPattern value="%-5level %file:%line - %message%newline" />-->
<conversionPattern value="%level %logger:%line %newline %message%newline" />
</layout>
अनुकूलन का पता लगाने स्विच: log4net केवल गंभीर त्रुटि के साथ आता है शब्दाडंबर बढ़ाने के क्रम में जानकारी डीबग चेतावनी दी है। एकमात्र जिसे मैं वास्तव में याद करता हूं वह है कि किसने लॉग-इन किया है।
अनुकूलन विन्यास: मैं एक log4net.config फ़ाइल जो मैं रनटाइम पर लोड का उपयोग (या ग एक लॉग लिखें:। \ शिकायत है कि मैं config नहीं मिल सकता है)
Try
' Get log4net configuration from file
Dim logConfigFile As FileInfo
logConfigFile = New FileInfo(".\log4net.config")
If logConfigFile.Exists Then
XmlConfigurator.Configure(logConfigFile)
Else
CreateEmergenceLogFile(logConfigFile.FullName)
End If
Catch ex As Exception
Console.Out.WriteLine("Could not load the log4net config file")
End Try
सिर्फ एक बड़ा TraceListeners का सेट: क्षमा करें कि एक - मैं इसके लिए अपना शब्द ले जाऊंगा।
गतिविधियों/क्षेत्रों का सहसंबंध: क्या आपका मतलब है कि प्रत्येक फ़ाइल (कक्षा पढ़ें) को अपना नामित लॉग मिलता है जिसमें अलग-अलग लॉग स्तर सीमाएं हो सकती हैं।
Private Shared _logger As log4net.ILog = _
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
Private Shared _loggerAttribute As log4net.ILog = _
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName & ".Attribute")
Private Shared _loggerCache As log4net.ILog = _
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName & ".Cache")
सेवा ट्रेस दर्शक: वास्तव में आप एक भी कक्षा में खंड प्रवेश
एक वर्ग फ़ाइल में (जो सच में बहुत ज्यादा ... ऐसा करने के लिए बड़े हो गए हो सकता है) कर सकते हैं log4net में .config:
<logger name="NipissingU.ADWrapper.EntryTools.Attribute">
<level value="INFO" />
</logger>
<logger name="NipissingU.ADWrapper.EntryTools.Cache">
<level value="WARN" />
</logger>
यह सब app.config/web.config में विन्यास योग्य है: अच्छी तरह से हो सकता है कि ASP.NET में एक अच्छी बात है, मैं नहीं जानता कि, लेकिन जब अमीर ग्राहक सेम गिनती क्षुधा बनाने मुझे एक अलग विन्यास फाइल पसंद है।
यहां सब कुछ सिर्फ मेरी छोटी उपयोग चाल है।
hth, -माइक
मुझे यह सवाल एसओ के योग्य पाया गया, और यह भी कई जानकारी प्राप्त करने के लिए पर्याप्त उत्तर मिला कि मुझे अब और जानकारी की तलाश नहीं करनी है। जो भी इस सवाल को 'रचनात्मक नहीं' के रूप में बंद करता है, मैं सवाल करता हूं कि यह लॉग 4नेट की ओर पूर्वाग्रह और प्राप्त उत्तरों की रेखा के साथ सामान्य असंतोष के कारण किया गया था या नहीं। यह प्रश्न और कई उत्तर लॉग 4नेट और .NET ट्रेसिंग दोनों के आस-पास डर, अनिश्चितता, संदेह और सादा गलत जानकारी को स्पष्ट करने में मदद करते हैं। –
मुझे यह प्रश्न भी उपयोगी पाया है। और वास्तव में वास्तव में मिलान किया जो मैं खोज रहा था। – Darkonekt