What should I identify with the id argument in TraceSource.TraceEvent method?
我使用TraceSource类登录.NET项目。
然而,我一直不清楚的一点是,
但是它的预期或典型有用用法是什么?
我可以想到几种可能性:
- 它是事件发生的ID(即同一行代码在每次执行时都会产生不同的ID);
- 它是方法调用的ID(即您可以从ID推断代码行);
- 它是一系列类似事件的ID(例如,所有表示数据库不存在的错误消息都共享相同的ID);
-
它是与
TraceEventType.(Start|Stop|Suspend|Resume|Transfer) 枚举值结合使用的一组与逻辑操作相关的事件的ID;
我曾经问过自己同样的问题,但在任何Microsoft文档中都没有发现任何可以澄清的问题。
我设法找到的是Microsoft MVP Richard Grimes写的一篇文章:
" id参数是您选择要使用的任何参数,不会强迫特定的ID与特定的格式消息相关联。"
在所有示例中,他都将0用作id参数。
在MSDN文章中,我已经看到它是随机使用的,没有提供任何其他信息。
我相信,只要您保持相同的代码约定,就可以以任何有助于您阅读日志的最佳方式使用。如果想使用SourceFilter.ShouldTrace方法,该方法在以后的跟踪过滤中也很有用,该方法也接受id参数。
如果有错误,我用它来描述错误类型,或者将0用作其他任何内容。
据我在文档中所见,它并非专门用于某一目的。我认为您可以根据自己的逻辑来跟踪事件。
就我个人而言,当我使用
另一种可能性是,您可以使用不同的值来关联应用程序的不同部分,因此数据访问= 1,用户帐户= 2,产品逻辑= 3,通知= 4,UI = 5等。同样,您可以然后使用此过滤器将跟踪信息筛选为仅查找您正在查看的事物的类型。
或者,您可以(如建议的那样)使用不同的
使用
- 这对您构建和调试程序很有用
- 程序员阅读您的代码很清楚并且可以理解
- 在整个程序中始终使用
一种可能性是,您可以有一个集中的类来管理事件