Theo như tôi đã thấy trong tài liệu, nó không dành riêng cho một mục đích. Tôi nghĩ rằng đó là có cho bạn để buộc với logic của riêng bạn để truy tìm các sự kiện. Phương pháp ShouldTrace()
trên SourceFilter
có thông số id
phù hợp, vì vậy bạn cũng có thể sử dụng thông số này để xác định sự kiện hoặc loại sự kiện nào đi đến đâu.
Cá nhân, khi tôi sử dụng TraceSource
(không được thừa nhận nhiều, chỉ mới phát hiện ra nó gần đây), tôi sử dụng nó để theo dõi các loại sự kiện hoặc danh mục. Trong một ứng dụng, tôi đã có một enum cho các loại sự kiện mà tôi đã sử dụng với phương thức ghi nhật ký khác, với các giá trị Debug, Info, Warn, Error, Fatal, vì vậy tôi truyền nó tới int
và sử dụng nó như là id
. vì vậy tôi có thể lọc ra bất cứ điều gì dưới mức mà tôi đã quan tâm để de-lộn xộn dấu vết. Một khả năng khác là bạn có thể sử dụng các giá trị khác nhau để liên quan đến các phần khác nhau của ứng dụng, do đó, Truy cập dữ liệu = 1, Tài khoản người dùng = 2, Logic sản phẩm = 3, Thông báo = 4, Giao diện người dùng = 5 v.v. sau đó có thể sử dụng tính năng này để lọc theo dõi xuống chỉ theo loại điều bạn đang xem.Ngoài ra, bạn có thể sử dụng các giá trị id
khác nhau để chỉ các loại sự kiện khác nhau, vì vậy bạn có thể sử dụng chúng như mã lỗi để (ví dụ) bất kỳ lúc nào bạn thấy kết nối cơ sở dữ liệu không thể được thiết lập, hoặc bất cứ điều gì.
Nó không đặc biệt là vấn đề gì bạn sử dụng tham số id
cho, miễn là:
- Nó rất hữu ích cho bạn trong việc xây dựng và sửa lỗi chương trình
- Rõ ràng và dễ hiểu đối với các lập trình viên đọc thông qua mã của bạn
- Nó được sử dụng một cách nhất quán trong suốt chương trình
một khả năng là bạn có thể có một lớp học tập trung mà người đàn ông độ tuổi sự kiện id
s và cung cấp các giá trị dựa trên một số loại đầu vào để đảm bảo rằng toàn bộ ứng dụng sử dụng cùng một số id
cho cùng một điều.
Tôi tin (không có bằng chứng), khi bạn lần đầu tiên 'TraceEvent()' có id và ngay sau 'TraceData()' với cùng id, người nghe có thể liên kết dữ liệu với sự kiện ?! Ví dụ: Trước tiên bạn 'TraceEvent()' là một ngoại lệ và ngay sau đó dấu vết ngăn xếp 'TraceData()'. – WiSeeker