2009-12-17 15 views
8

मैं डेटाबेस में संदेश जानकारी लॉग इन करने में सक्षम होना चाहता हूं, और मैं यह तय करने की कोशिश कर रहा हूं कि यह कैसे करना है। क्या फ़ाइल के बजाए डेटाबेस में लिखने के लिए डब्ल्यूसीएफ लॉगिंग तंत्र को कॉन्फ़िगर करना संभव है? धन्यवाद।मैं डब्ल्यूसीएफ लॉगिंग को कैसे सक्षम कर सकता हूं ताकि वह डेटाबेस को लिख सके?

+1

ब्लॉग [एंटरप्राइज़ लाइब्रेरी का उपयोग करने के लिए डब्ल्यूसीएफ सेवा को कॉन्फ़िगर करना: डाटाबेस में डेटा लॉग करने के लिए लॉगिंग एप्लिकेशन] (http://weblogs.asp.net/sukumarraju/archive/2011/11/07/configuring-wcf-service-to- उपयोग-एंटरप्राइज़-लाइब्रेरी-लॉगिंग-एप्लिकेशन-टू-लॉग-डेटा-टू-डेटाबेस.aspx) में चरण-दर-चरण निर्देश हैं, 'डेटाबेस ट्रेस श्रोता' को कॉन्फ़िगर कैसे करें –

उत्तर

8

आप दो चीजों की आवश्यकता है:

  • एक उचित config ट्रेस संदेशों पर कब्जा करने के
  • अनुरेखण एक निशान श्रोता नेट सक्षम है और उन्हें एक डेटाबेस में संग्रहीत करने के लिए

# 1 के लिए:
आप पहली बार WCF में पता लगाने चालू करने की आवश्यकता - आप <system.serviceModel> में एक प्रविष्टि की जरूरत को सक्षम बनता है कि पता लगाने:

<system.serviceModel> 
    <diagnostics> 
     <messageLogging 
      logEntireMessage="true" 
      logMalformedMessages="false" 
      logMessagesAtServiceLevel="true" 
      logMessagesAtTransportLevel="false" 
      maxMessagesToLog="300000" 
      maxSizeOfMessageToLog="200000"/> 
    </diagnostics> 
</system.serviceModel> 

इसके बाद, आप इस तरह के रूप नेट ट्रेसिंग विन्यस्त करने की जरूरत:

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="Information, ActivityTracing" 
       propagateActivity="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="xml" type="WcfTrace.Trace.WebTraceListener,WcfTrace.Trace" /> 
    </sharedListeners> 
</system.diagnostics> 

यहाँ, बजाय WebTraceListener, या अन्य पूर्व परिभाषित श्रोताओं के, आप अपने डेटाबेस-उन्मुख ट्रेस श्रोता भी प्लग कर सकते हैं।

# 2 के लिए:
आप कर सकते हैं - निश्चित रूप से - लिखना अपनी खुद की SqlTraceListener - या आप वहाँ बाहर कई रेडीमेड समाधानों में से एक का उपयोग कर सकते हैं, उदाहरण के this one here के लिए (Codeplex से कोड डाउनलोड)।

0

आप पूरे सोप-संदेश की जरूरत नहीं है, मैं कस्टम IParameterInspector या IDispatchMessageInspector कार्यान्वयन, इस मामले में कारण के साथ log4net उपयोग करने के लिए आपको लॉग इन करने के केवल अपनी वांछित लिख सकते हैं सुझाव है। अन्यथा, marc_s का समाधान लें।

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

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