2009-11-17 7 views
6

मैं माइक्रोसॉफ्ट उद्यम पुस्तकालय.net उद्यम पुस्तकालय प्रवेश करने में एक 'श्रेणी' (ईवेंट लॉग करने के लिए)

इसकी लिखते लॉग दूर ठीक का उपयोग कर ईवेंट लॉग करने के लिए कुछ लॉग लिख रहा हूँ की स्थापना लेकिन does not श्रेणी सेट करने लगते हैं घटना लॉग में। यह श्रेणी लॉग के संदेश निकाय में ठीक दिखाई देती है (यदि मैं इसे सेट करना चुनता हूं) लेकिन ईवेंट व्यूअर श्रेणी नहीं लेता है।

मुझे क्या याद आ रही है?


सी # स्रोत

LogEntry log = new LogEntry(); 
log.Message = "Test"; 
log.Categories.Add("Event"); 
Logger.Write(log); 

वेब config

<loggingConfiguration name="Logging Application Block" tracingEnabled="true" 
defaultCategory="General" logWarningsWhenNoCategoriesMatch="true"> 
<listeners> 
    <add source="TestLogSource" formatter="Text Formatter" log="TestLog" 
    machineName="" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    traceOutputOptions="None" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    name="Formatted EventLog TraceListener" /> 
</listeners> 
<formatters> 
    <add template="Timestamp: {timestamp}&#xD;&#xA;Message: {message}&#xD;&#xA;Category: {category}&#xD;&#xA;Severity: {severity}" 
    type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    name="Text Formatter" /> 
</formatters> 
<categorySources> 
    <add switchValue="All" name="Events"> 
    <listeners> 
     <add name="Formatted EventLog TraceListener" /> 
    </listeners> 
    </add> 
    <add switchValue="All" name="General"> 
    <listeners> 
     <add name="Formatted EventLog TraceListener" /> 
    </listeners> 
    </add> 
</categorySources> 
<specialSources> 
    <allEvents switchValue="All" name="All Events" /> 
    <notProcessed switchValue="All" name="Unprocessed Category" /> 
    <errors switchValue="All" name="Logging Errors &amp; Warnings"> 
    <listeners> 
     <add name="Formatted EventLog TraceListener" /> 
    </listeners> 
    </errors> 
</specialSources> 

+0

'लॉग। श्रेणियां। जोड़ें ("ईवेंट ** एस **"); '? –

+0

क्या आपका मतलब है कि आप ईवेंट लॉग इन में अपनी लॉग इन घटनाओं को अपनी श्रेणी के अंतर्गत चाहते हैं? या एक बार जब आप इसे ईवेंट व्यूअर में देखते हैं, तो आप विवरण में श्रेणी नहीं देख सकते हैं? – curtisk

उत्तर

5

इवेंटलॉग श्रेणी अलग और LogEntry श्रेणियों से अलग है। तो मुझे नहीं लगता कि आप EventLog श्रेणी फ़ील्ड में प्रदर्शित करने के लिए LogEntry श्रेणियों का उपयोग कर सकते हैं।

डेटा परिप्रेक्ष्य से प्रकार असंगत हैं: EventLog श्रेणी एक छोटी सी है जबकि LogEntry श्रेणियां एक स्ट्रिंग हैं। हां, ईवेंट व्यूअर में यह एक स्ट्रिंग दिखाता है लेकिन यह मान रजिस्ट्री में परिभाषित श्रेणी MessageFile के माध्यम से देखा जाता है।

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

फ़ॉलबैक के रूप में आप EventLog प्रविष्टि के विवरण में हमेशा अपनी श्रेणी के लिए एक खोज कर सकते हैं।

1

यह लिंक (http://drdobbs.com/184405714) श्रेणी बनाने के तरीके के बारे में कुछ और जानकारी है।

+0

इवेंट श्रेणी पर एक और सहायक लिंक - http://msdn.microsoft.com/en-us/library/system.diagnostics.eventsourcecreationdata.categoryresourcefile.aspx – Rajes

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