首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TraceSource.TraceEvent(TraceEventType.Transfer与TraceSource.TraceTransfer

TraceSource.TraceEvent(TraceEventType.Transfer与TraceSource.TraceTransfer
EN

Stack Overflow用户
提问于 2010-06-12 00:12:49
回答 1查看 4.3K关注 0票数 2

在使用TraceSource.TraceEvent(TraceEventType.Transfer,和System.Diagnostics TraceSource进行日志记录/跟踪时,使用TraceSource.TraceTransfer有区别吗?

在我们的环境中,我们将开发许多将通过WCF进行通信的服务。我们还在评估应该使用什么平台来进行日志记录/跟踪。我们倾向于使用System.Diagnostics,至少在一定程度上是因为能够使用CorrelationManager、ActivityID、TraceTransfer等在服务之间关联日志。

我可以在TraceSource的文档中看到,它有一个TraceTransfer方法和一个可以将TraceEventType.Transfer作为事件类型的TraceEvent。什么时候你会使用一种而不是另一种?我见过像here这样的例子,展示了如何使用Start/Stop以及如何管理ActivityID和CorrelationManager,但我很少看到有人使用TraceSource.TraceEvent(TraceEventType.Transfer,... )。这里有一个使用TraceEventType.Transfer (以及显式调用TraceTransfer)的here示例。

在这一点上,也许我实际上开始回答我自己的问题了……

在调用TraceSource.TraceEvent(TraceEventType.Transfer,时,TraceSource.TraceTransfer似乎显式地对作为参数传递的ActivityID执行了某些操作。)没有显式地对ActivityID做任何事情(因为它不是作为参数传递的)。它看起来真的只是记录另一个事件,恰好是一个传输事件,但不会对CorrelationManager或任何其他事件做任何其他事情。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-09 02:25:43

根据MSDN documentation for TraceSource.TraceTransfer,TraceSource.TraceTransfer调用TraceListener.TraceTransfer。TraceListener.TraceTransfer的基本实现只调用TraceListener.TraceEvent(TraceEventType.Transer,...),传递传递给TraceSource.TraceTransfer的guid的字符串表示。

因此,在我看来,TraceSource.TraceTransfer提供了一种显式指示活动转移正在发生的方法。在调用点,使用TraceSource.TraceTransfer更明显,类型更安全。如果实现TraceListener,您可以利用显式的TraceTransfer调用和活动id作为Guid传递的事实来完成在传输活动id时要执行的任何特殊工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3024386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档