gpt4 book ai didi

c# - 具有相关事件 ID 的 EventSource 跟踪

转载 作者:行者123 更新时间:2023-12-03 17:18:31 26 4
gpt4 key购买 nike

我已经开始使用 ETW 和来自 Entlib 6 的进程外语义日志块。当我使用 async/await 时,CurrentThreadActivityId 未在延续线程上设置,并且 TPL 框架不记录传输事件。这使得执行端到端跟踪变得极其困难。

根据微软的文档,TPL 框架应该记录一个传输事件并生成一个新的事件 ID,但我似乎无法让它工作。

Documentation from Entlib 6

这是一个显示问题的小例子:

要记录 TPL 事件,我正在使用以下内容:

<eventSource name="System.Threading.Tasks.TplEventSource" level="Informational" matchAnyKeyword="1"/>

这里是我的测试代码:
using System;
using System.Collections.Generic;
using System.Diagnostics.Tracing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AsyncContextTest
{
class Program
{
static Guid _activityId = Guid.NewGuid();

static void Main(string[] args)
{
EventSource.SetCurrentThreadActivityId(_activityId);
Console.WriteLine(EventSource.CurrentThreadActivityId);
Task t = Task.Run(async () => await DoStuffAsync());
Console.WriteLine(EventSource.CurrentThreadActivityId);

Console.Read();
}

public static async Task DoStuffAsync()
{
var x = "one,two,three".Split(',');
Console.WriteLine(EventSource.CurrentThreadActivityId);
await Task.Delay(1000);
Console.WriteLine(EventSource.CurrentThreadActivityId);
var y = String.Join(",", x);

Console.WriteLine("Done");

}
}
}

结果
334540cc-ccb1-4196-8587-815abf237e4c
334540cc-ccb1-4196-8587-815abf237e4c
00000000-0000-0000-0000-000000000000
00000000-0000-0000-0000-000000000000
Done

有没有人有一个简单的例子来展示使用 ETW 和 async/await 进行端到端跟踪的正确方法?

编辑:

我能够使用进程内监听器正常工作,但不能使用进程外监听器。 TPL 没有记录任何内容。

最佳答案

更改配置以使用事件源的 GUID 而不是名称。

<eventSource id="2e5dba47-a3d2-4d16-8ee0-6671ffdcd7b5" level="Informational" />

输出将如下所示:
605e615a-c849-4ee7-95b8-e6677f945c3f
605e615a-c849-4ee7-95b8-e6677f945c3f
00000001-0001-0000-0c22-0000ffdcd7b5
00000002-0001-0000-0c22-0000ffdcd7b5
Done

Does anyone have a simple example showing the proper way to do end to end tracing with ETW and async/await?



还在找...

关于c# - 具有相关事件 ID 的 EventSource 跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26361490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com