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

发布于 2024-09-04 22:03:02 字数 1137 浏览 2 评论 0原文

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

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

。 TraceSource 的文档表明它有一个 TraceTransfer 方法以及一个可以将 TraceEventType.Transfer 作为事件类型的 TraceEvent 你什么时候会使用其中一个而不是另一个? .microsoft.com/en-us/archive/blogs/andreal/wcf-end-to-end-tracing" rel="nofollow noreferrer" title="here">此处 显示如何使用开始/停止以及如何管理ActivityID和CorrelationManager,但我很少看到有人使用TraceSource.TraceEvent(TraceEventType.Transfer, ... )。有一个示例 这里显示了使用TraceEventType.Transfer(以及显式调用TraceTransfer)。

至此,也许我实际上开始回答我自己的问题...

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

感谢您的任何帮助。

When using System.Diagnostics TraceSource for logging/tracing, is there a difference between using TraceSource.TraceTransfer and TraceSource.TraceEvent(TraceEventType.Transfer, ... ?

In our environment, we will be developing a number of services that will communicate via WCF. We are also evaluating what platform we should use for logging/tracing. We are leaning towards using System.Diagnostics, at least in part because of the ability to correlate logs between services using the CorrelationManager, ActivityID, TraceTransfer etc.

I can see in the documentation for TraceSource that it has a TraceTransfer method as well as a TraceEvent that can take TraceEventType.Transfer as an event type. When would you use one vs the other? I have seen examples like here that show how to use Start/Stop and how to manage the ActivityID and CorrelationManager, but I have rarely seen anyone use TraceSource.TraceEvent(TraceEventType.Transfer, ... ). There is an example here that shows using TraceEventType.Transfer (as well as explicitly calling TraceTransfer).

By this point, maybe I am actually starting to answer my own question...

It seems like TraceSource.TraceTransfer is explicitly doing something with the ActivityID that is passed as a parameter whereas calling TraceSource.TraceEvent(TraceEventType.Transfer, ...) is not explicitly doing anything with the ActivityID (since it is not passed as a parameter). It seems like it is really just logging another event, that happens to be a Transfer event, but does not do anything else with the CorrelationManager or anything else.

Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红尘作伴 2024-09-11 22:03:02

根据 TraceSource.TraceTransfer 的 MSDN 文档 、TraceSource.TraceTransfer 调用TraceListener.TraceTransfer。 TraceListener.TraceTransfer 的基本实现只需调用 TraceListener.TraceEvent(TraceEventType.Transer, ...),将 guid 的字符串表示形式传递给 TraceSource.TraceTransfer。

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

According to the MSDN documentation for TraceSource.TraceTransfer, TraceSource.TraceTransfer calls TraceListener.TraceTransfer. The base implementation of TraceListener.TraceTransfer simply calls TraceListener.TraceEvent(TraceEventType.Transer, ...), passing a string representation of the guid passed to TraceSource.TraceTransfer.

So, it seems to me that TraceSource.TraceTransfer provides way to explicitly indicate that an activity transfer is happening. At the call site, it is more obvious and more typesafe to use TraceSource.TraceTransfer. If implementing a TraceListener, you could take advantage of the explicit TraceTransfer call and the fact that the activity id is passed in as a Guid to do any special work that you want to do when an activity id is transferred.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文