C # में ट्रेसिंग (सरल) कैसे जोड़ें? [बन्द है]


122

मैं कुछ अनुरेखण को C # एप्लिकेशन से परिचित कराना चाहता हूं जो मैं लिख रहा हूं। अफसोस की बात है, मैं वास्तव में कभी भी याद नहीं कर सकता कि यह कैसे काम करता है और हर हाल में जांच करने के लिए संदर्भ गुणों वाला एक ट्यूटोरियल पसंद करेगा। इसमें शामिल होना चाहिए:

  • TraceListeners के पंजीकरण के लिए जोड़ने के लिए App.config / Web.config सामान
  • कॉलिंग एप्लिकेशन में इसे कैसे सेट करें

क्या आप uber ट्यूटोरियल जानते हैं जिसे हमें लिंक करना चाहिए?

EDIT: ग्लेन स्लेवेन ने मुझे सही दिशा में इशारा किया। इसे अपने App.config / Web.config में जोड़ें <configuration/>:

<system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter"
             initializeData="trace.log" />
      </listeners>
    </trace>
</system.diagnostics>

यह एक TextWriterTraceListenerऐसा जोड़ देगा जो आप के साथ भेजने के लिए सब कुछ पकड़ लेगा Trace.WriteLineआदि।

EDIT: @DanEsparza ने बताया कि आपको इसका उपयोग करना चाहिए Trace.TraceInformation, Trace.TraceWarningऔर Trace.TraceErrorइसके बजाय Trace.WriteLine, जैसे वे आपको संदेशों को उसी तरह से प्रारूपित करने की अनुमति देते हैं string.Format

युक्ति: यदि आप कोई श्रोता नहीं जोड़ते हैं, तो आप अभी भी SysInternals प्रोग्राम DebugView ( Dbgview.exe): http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx के साथ ट्रेस आउटपुट देख सकते हैं


4
मैं Trace.TraceInformationWriteLine के बजाय उपयोग करने और पसंद करने की अत्यधिक सलाह देता हूं । वे सदस्य आपको अपने संदेशों को प्रारूपित करने की अनुमति देते हैं string.Format
दान एसपारज़ा 15

जवाबों:



5

मैंने लगभग 5 अलग-अलग उत्तरों के साथ-साथ उपरोक्त सभी ब्लॉग पोस्ट का अनुसरण किया और अभी भी समस्याएं थीं। मैं कुछ मौजूदा कोड के लिए एक श्रोता को जोड़ने की कोशिश कर रहा था जो उस TraceSource.TraceEvent(TraceEventType, Int32, String)पद्धति का उपयोग करके ट्रेस कर रहा था जहां TraceSourceऑब्जेक्ट को एक स्ट्रिंग के साथ आरम्भ किया गया था, जिससे यह एक 'नामित स्रोत' बना। मेरे लिए यह मुद्दा स्रोत के एक वैध संयोजन और स्विच तत्वों को इस स्रोत को लक्षित करने के लिए नहीं बना रहा था। यहां एक उदाहरण दिया गया है, जिसे एक फ़ाइल में लॉग इन किया जाएगा tracelog.txt। निम्नलिखित कोड के लिए:

TraceSource source = new TraceSource("sourceName");
source.TraceEvent(TraceEventType.Verbose, 1, "Trace message");

मैं निम्नलिखित डायग्नोस्टिक्स कॉन्फिग के साथ सफलतापूर्वक लॉग इन करने में कामयाब रहा:

  <system.diagnostics>
    <sources>
      <source name="sourceName" switchName="switchName">
        <listeners>
          <add
              name="textWriterTraceListener"
              type="System.Diagnostics.TextWriterTraceListener"
              initializeData="tracelog.txt" />
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="switchName" value="Verbose" />
    </switches>
  </system.diagnostics>

कोड स्निपेट काम नहीं करता है।
उपयोगीबती

क्षमा याचना @usefulBee, यह एक कोड स्निपेट नहीं था, यह स्वचालित रूप से कोड के रूप में चिह्नित किया गया था। यह कॉन्फ़िगरेशन कोड है जो आपके App.config या Web.config का हिस्सा होगा, मुझे आशा है कि इससे मदद मिलती है।
शॉन

3

DotNetCoders का इस पर एक स्टार्टर लेख है: http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50 , वे इस बारे में बात करते हैं कि विन्यास फाइल में स्विच कैसे सेट करें और कोड कैसे लिखें, लेकिन यह बहुत पुराना है (2002)। CodeProject पर एक और लेख है: http://www.codeproject.com/KB/trace/debugtreatise.aspx लेकिन यह एक ही उम्र है। कोडगुरु के पास एक और लेख है TraceListeners: http://www.codeguru.com/columns/vb/article.php/c5611

मैं किसी और हाल के लेख के बारे में नहीं सोच सकता, उम्मीद है कि यहाँ किसी और के पास कुछ होगा


पहला लिंक 404 पर जा रहा है।
केकोडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.