据我在文档中看到的,它并非专门用于一个目的。我认为您可以使用自己的逻辑来跟踪事件。ShouldTrace()
on 方法SourceFilter
接受一个匹配参数,因此id
您还可以使用它来确定哪些事件或事件类型去哪里。
就我个人而言,当我使用TraceSource
(诚然不多,最近才发现它)时,我用它来跟踪事件类型或类别。在一个应用程序中,我已经有一个事件类型的枚举,我正在使用另一种日志记录方法,其值为 Debug、Info、Warn、Error、Fatal,因此我将其转换为int
并将其用作id
,这有助于稍后进行过滤所以我可以过滤掉任何低于我感兴趣的水平的东西,以消除跟踪的混乱。
另一种可能性是您可以使用不同的值来关联应用程序的不同部分,因此 Data Access = 1、User Accounts = 2、Product Logic = 3、Notifications = 4、UI = 5 等。同样,您可以使用它将跟踪过滤到仅您正在查看的事物类型。
或者,您可以(如您所建议的)使用不同的id
值来表示不同的事件类型,因此您可以像错误代码一样使用它们,这样(例如)任何时候您看到id
26 时,您都会知道数据库连接不可能成立,或其他。
使用参数的目的并不重要id
,只要:
- 它对您构建和调试程序很有用
- 通读您的代码的程序员清晰易懂
- 它在整个程序中始终如一地使用
一种可能性是您可以有一个集中的类来管理事件id
并根据某种输入提供值,以确保整个应用程序id
对同一事物使用相同的值。