我应该在TraceSource.TraceEvent方法中使用id参数识别什么?

Jea*_*nal 10 .net c# system.diagnostics

我使用TraceSource类来登录我的.NET项目.

然而,我从未清楚过的一点是,idTraceEvent方法中参数的意图是什么.目前,我总是把它设置为0.

但它的预期或典型有用用途是什么?

我可以想到几个可能性:

  • 它是事件发生的ID(即同一行代码在每次执行时产生不同的ID);
  • 它是方法调用的ID(即您可以从ID中推断出代码行);
  • 它是一系列类似事件的ID(例如,表示数据库不存在的所有错误消息共享相同的ID);
  • 它是与逻辑操作相关的一组事件的ID,与TraceEventType.(Start|Stop|Suspend|Resume|Transfer)枚举值结合使用;

小智 6

我问自己同样的问题,我在任何Microsoft文档中都没有找到任何澄清这一点.我找到的是一篇由Microsoft MVP Richard Grimes撰写的文章: "id参数是你选择它的任何东西,没有强迫特定ID与特定格式消息相关联." 在所有示例中,他使用0作为id参数.

在MSDN文章中,我看到它使用随机,没有提供任何额外的信息.我相信只要您保持相同的代码约定,您就可以在阅读日志时以任何方式使用它们.如果你想使用接受id参数的SourceFilter.ShouldTrace方法,那么之后在跟踪过滤中它可能会很有用.

我用它来描述错误类型,如果我有错误,或使用0表示其他任何内容.