2010-07-19 36 views
8

Tôi đã thêm đoạn mã sau vào file web.config của tôi:Làm thế nào để gửi đầu ra theo dõi tới một tệp trong hệ thống tệp?

<system.diagnostics> 
    <trace autoflush="false" indentsize="4" > 
     <listeners> 
     <add name="myListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="d:\debugging.txt" /> 
     <remove name="Default"></remove> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

Và tôi đã viết dòng này để gửi dấu vết đầu ra:

System.Diagnostics.Trace.Write(sID + " tracing id"); 

Nhưng, tôi không thể nhìn thấy bất kỳ "gỡ rối. txt "tập tin được tạo trên ổ đĩa d của tôi và không có đầu ra dấu vết.

Tôi có thiếu gì đó không?

+0

Đối với tệp, bạn cần phải có 'autoflush =" true "'. – leppie

+0

Có, sau khi thực hiện autoflush = "true", đầu ra dấu vết đến trong tệp đích, nhưng từ dòng: HttpContext.Current.Trace.Write (sID + "truy tìm id"); không phải từ System.Diagnostics.Trace. Và nếu tôi loại bỏ thuộc tính writeToDiagnosticsTrace = "true" khỏi System.Web configSection thì theo dõi HttpContext cũng không hoạt động rõ ràng. – teenup

+0

ASP.NET hiển thị thông báo theo dõi bất cứ khi nào truy tìm được kích hoạt cho một trang. ('trace.axd TraceViewer'). Để định tuyến các tin nhắn Trace đến một trang Web ASP.NET, bạn phải thêm một đối tượng 'WebPageTraceListener'. Để xem các thông báo theo dõi ASP.NET và System.Diagnostics trong một ngữ cảnh bên ngoài một trang ASP.NET, hãy sử dụng đối tượng 'TextWriterTraceListener' để ghi các thông điệp theo dõi vào một tệp. – Kiquenet

Trả lời

5

Bạn cần theo dõi thư mục mà dịch vụ ASP.NET có quyền ghi trên đó.

Điều tôi thích làm là chỉ để mặc định trình lắng nghe và chạy TechNet DebugView, có tùy chọn lưu hoặc ghi vào một tệp.

+0

Tôi đã cấu hình một thư mục để có toàn quyền kiểm soát tài khoản máy Asp.Net, bây giờ tệp được tạo, nhưng nó trống và không chứa bất kỳ đầu ra dấu vết nào. Tôi có Trace = "True" trên trang của tôi và tôi có thể thấy đầu ra truy tìm trên trang của tôi trong trình duyệt. – teenup

+0

Có, sau khi thực hiện autoflush = "true", đầu ra dấu vết đến trong tệp đích, nhưng từ dòng: HttpContext.Current.Trace.Write (sID + "truy tìm id"); không phải từ System.Diagnostics.Trace. Và nếu tôi loại bỏ thuộc tính writeToDiagnosticsTrace = "true" khỏi System.Web configSection thì theo dõi HttpContext cũng không hoạt động rõ ràng. – teenup

+0

Bạn có biểu tượng 'TRACE' được xác định trong bản dựng của bạn, phải không? –

Các vấn đề liên quan