จะเพิ่มการติดตาม (แบบง่าย) ใน C # ได้อย่างไร? [ปิด]


122

ฉันต้องการแนะนำการติดตามแอปพลิเคชัน C # ที่ฉันกำลังเขียนอยู่ น่าเศร้าที่ฉันจำไม่ได้เลยว่ามันทำงานอย่างไรและต้องการบทช่วยสอนที่มีคุณสมบัติอ้างอิงเพื่อตรวจสอบเป็นระยะ ๆ ควรรวมถึง:

  • App.config / Web.config สิ่งที่จะเพิ่มสำหรับการลงทะเบียน TraceListeners
  • วิธีตั้งค่าในแอปพลิเคชันการโทร

คุณรู้จัก uber tutorial ที่เราควรลิงค์หรือไม่?

แก้ไข: Glenn Slaven ชี้ฉันไปในทิศทางที่ถูกต้อง เพิ่มสิ่งนี้ใน 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>

สิ่งนี้จะเพิ่ม a TextWriterTraceListenerที่จะจับทุกสิ่งที่คุณส่งไปด้วยTrace.WriteLineฯลฯ

แก้ไข: @DanEsparza ชี้ให้เห็นว่าคุณควรใช้Trace.TraceInformation, Trace.TraceWarningและTrace.TraceErrorแทนเช่นที่พวกเขาช่วยให้คุณสามารถข้อความรูปแบบเช่นเดียวกับTrace.WriteLinestring.Format

เคล็ดลับ:หากคุณไม่ได้เพิ่ม Listener ใด ๆ คุณจะยังคงเห็นผลลัพธ์การติดตามด้วยโปรแกรม SysInternals DebugView ( Dbgview.exe): http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx


4
ฉันขอแนะนำอย่างยิ่งให้ใช้Trace.TraceInformationและสิ่งที่ชอบแทน WriteLine สมาชิกเหล่านั้นช่วยให้คุณสามารถจัดรูปแบบข้อความของคุณเช่นstring.Format.
Dan Esparza

คำตอบ:



5

ฉันติดตามคำตอบที่แตกต่างกันประมาณ 5 ข้อรวมถึงบทความในบล็อกทั้งหมดข้างต้นและยังคงมีปัญหา ฉันพยายามเพิ่ม Listener ให้กับโค้ดที่มีอยู่ซึ่งกำลังติดตามโดยใช้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>

ข้อมูลโค้ดใช้ไม่ได้
ประโยชน์Bee

ขอโทษ @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แต่อายุเท่ากัน CodeGuru มีบทความอื่นเกี่ยวกับ TraceListeners ที่กำหนดเอง: http://www.codeguru.com/columns/vb/article.php/c5611

ฉันไม่สามารถนึกถึงบทความล่าสุดได้อีกหวังว่าจะมีใครบางคนที่นี่


ลิงค์แรกไปที่ 404
Kcoder
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.