Làm cách nào để thêm truy tìm (đơn giản) trong C #? [đóng cửa]


122

Tôi muốn giới thiệu một số cách truy tìm ứng dụng C # mà tôi đang viết. Đáng buồn thay, tôi không bao giờ thực sự có thể nhớ nó hoạt động như thế nào và muốn có một hướng dẫn với chất lượng tham khảo để kiểm tra lại mọi lúc mọi nơi. Nó nên bao gồm:

  • App.config / Web.config nội dung để thêm để đăng ký TraceListists
  • cách thiết lập nó trong ứng dụng gọi điện

Bạn có biết hướng dẫn về uber mà chúng ta nên liên kết đến không?

CHỈNH SỬA: Glenn Slaven đã chỉ tôi đi đúng hướng. Thêm cái này vào App.config / Web.config của bạn bên trong <configuration/>:

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

Điều này sẽ thêm một TextWriterTraceListenersẽ bắt mọi thứ bạn gửi đến với Trace.WriteLinev.v.

EDIT: @DanEsparza chỉ ra rằng bạn nên sử dụng Trace.TraceInformation, Trace.TraceWarningTrace.TraceErrorthay vì Trace.WriteLine, vì chúng cho phép bạn định dạng thông điệp giống như string.Format.

Mẹo: Nếu bạn không thêm bất kỳ trình nghe nào, thì bạn vẫn có thể thấy đầu ra theo dõi với chương trình SysInternals DebugView ( Dbgview.exe): http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx


4
Tôi thực sự khuyên bạn nên sử dụng Trace.TraceInformationvà những thứ tương tự thay vì WriteLine. Những thành viên đó cho phép bạn định dạng tin nhắn của bạn như thế nào string.Format.
Dan Esparza

Câu trả lời:



5

Tôi đã làm theo khoảng 5 câu trả lời khác nhau cũng như tất cả các bài đăng trên blog ở trên và vẫn gặp sự cố. Tôi đang cố gắng thêm trình lắng nghe vào một số mã hiện có đang theo dõi bằng cách sử dụng TraceSource.TraceEvent(TraceEventType, Int32, String)phương thức mà TraceSourceđối tượng được khởi tạo bằng một chuỗi làm cho nó trở thành 'nguồn được đặt tên'. Đối với tôi, vấn đề là không tạo được sự kết hợp hợp lệ giữa các phần tử nguồn và chuyển đổi để nhắm mục tiêu nguồn này. Đây là một ví dụ sẽ đăng nhập vào một tệp có tên tracelog.txt. Đối với mã sau:

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

Tôi đã quản lý thành công để đăng nhập với cấu hình chẩn đoán sau:

  <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>

Đoạn mã không hoạt động.
hữu íchBee

Xin lỗi @usefulBee, nó không phải là một đoạn mã, nó tự động được đánh dấu là mã. Đây là mã cấu hình sẽ là một phần của App.config hoặc Web.config của bạn, tôi hy vọng điều đó sẽ hữu ích.
Shaun

3

DotNetCoders có một bài viết dành cho người mới bắt đầu trên đó: http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50 , họ nói về cách thiết lập các nút chuyển trong tệp cấu hình và cách viết mã, nhưng nó khá cũ (2002). Có một bài viết khác trên CodeProject: http://www.codeproject.com/KB/trace/debugtreatise.aspx nhưng nó cùng tuổi. CodeGuru có một bài viết khác về TraceListaries tùy chỉnh: http://www.codeguru.com/columns/vb/article.php/c5611

Tôi không thể nghĩ ra bài nào gần đây hơn, hy vọng ai đó ở đây sẽ có thứ gì đó


Liên kết đầu tiên là đi đến một 404.
Kcoder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.