问题标签 [ms-tracing-eventsource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
368 浏览

c# - 是否可以让 SLAB 与 Microsoft.Diagnostics.Tracing.EventSource 一起使用?

官方发布说明说:

改进了与 EventSource nuget 包的兼容性

  • SLAB 的源必须更新和重建才能与 EventSource nuget 包(支持通道,但不支持采样)一起使用。这个过程现在相当轻松。
    • 向所有项目添加了对 EventSource nuget 包的引用
    • 在所有源文件中更改System.Diagnostics.TracingMicrosoft.Diagnostics.Tracing
    • 在单元测试项目中定义了 EVENT_SOURCE_PACKAGE 常量(以禁用可能无法使用 nuget 版本的测试)。

这有点神秘。Microsoft.Diagnostics.Tracing有些东西似乎倒退了,因为我在 Nuget 下载中根本看不到任何引用。

或者是你必须做的子项目来构建它(所以它应该说,添加、更改、定义而不是添加、更改、定义)?

嗯,这些说明(如果它们是说明)是不够的:

  • Microsoft.Diagnostics.Tracing已经引用了三个地方,因此会给出重复的警告
  • Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Etw.Configuration.EventSourceSettings在(这是一个类)和Microsoft.Diagnostics.Tracing.EventSourceSettings(这是一个枚举)之间有多个地方出现歧义。
0 投票
1 回答
364 浏览

c# - Microsoft.Diagnostics.Tracing.EventSource 不尊重为 None 启用 EventListener 的关键字

我有一个派生自 的事件源EventSource和一个派生自 EventListener 的事件侦听器。

我调用EnableEventsEventKeywords 参数中的事件侦听器,但侦听器也会为任何没有关键字的事件调用。

这是预期的行为吗,有什么解决方法(除了为我的所有事件发明虚拟关键字之外?)

0 投票
2 回答
60 浏览

.net - 事件源、清单、事件查看器和 WS 2008 R2

我有一个Microsoft.Diagnostics.Tracking.EventSourceusing Channel = EventChannel.Admin生成的清单在我尝试过的两台 W7 机器上安装并运行良好,但是在 2008 R2 上,当我在 EventViewer 中向下钻取时,我得到 MMC 管理单元错误,我可以看到事件是未“识别”(“找不到 blabla 的描述......”)。

奇怪的是,如果我卸载清单,EventViewer 可以毫无例外地打开事件文件(尽管仍然找不到正确的描述)。

EventSource清单文件是否有特定于操作系统的内容?

我应该搜索的方向的任何指针?

0 投票
1 回答
405 浏览

c# - 如何在 Microsoft.Diagnostics.Tracing.EventSource 中正确定义关键字?

我正在使用Microsoft.Diagnostics.Tracing.EventSource nuget 包将事件写入事件日志。在继承自EventSource的自定义类中定义关键字时,如下所示:

我得到一个包含以下 xml 的清单文件:

我不明白会话关键字的来源。这很烦人,因为当我使用以下代码生成事件时,这些神奇地创建的关键字会出现在事件日志中:

所记录消息的关键字 read Session0,Session1,Session2,Session3,Perf,它派生自事件 xml 中的关键字值<Keywords>0x4000f08000000000</Keywords>

我自己已经编写了一个清单文件(使用 ecmangen),在该清单中,关键字部分如下所示

这导致此事件 xml: <Keywords>0x8000000000000001</Keywords>。这个结果显示得非常好。

0 投票
1 回答
242 浏览

c# - 如何记录和跟踪 .net 应用程序的异常

我的任务是在 .net 应用程序中记录和跟踪异常。目的是在部署应用程序后记录所有数据。并且信息应该易于追踪以处理错误。我们正在使用天蓝色服务。为了使问题陈述更清楚,这里有一些演示代码

现在我应该如何实现这个 ILogger 接口。我应该使用哪些服务?我没有这方面的经验,所以显然我对此并不了解。希望我已经清楚地说明了问题。

编辑:我不喜欢登录 .txt 文件的想法。这将包含数千条日志,因此不容易追踪。我正在寻找一些有助于处理的好框架。

0 投票
1 回答
615 浏览

c# - 单声道中没有应用程序跟踪吗?

这是我的项目结构:

我已经使用以下 mcs 命令手动编译了项目:

我什app.config至将目标文件夹复制为ServiceClient.exe.config

下面是配置的样子:

但是当我运行时:

我没有看到任何跟踪输出...

0 投票
1 回答
423 浏览

c# - 如何通过 WriteEventCore 在 EventSource 中存储 DateTime

这是我当前的代码:

但最后,在生成的事件中,如果我将 startDateTime 作为“8/30/2017 5:00:00 PM”提供给该方法,我会将“8/30/3617 5:00:00 PM”视为 startDateTime。它总是在一年中增加1600。

我尝试提供8 作为大小而不是 sizeof(DateTime) ,但我仍然得到相同的结果。如果我将日期更改为字符串并作为字符串传递给 writeeventcore,我会得到正确的日期值,如此处的示例所示。我在这里做错了什么?通过 WriteEventCore 传递 DateTime 的正确方法是什么?

0 投票
0 回答
294 浏览

.net - ETW 跟踪:在连续跟踪几天后,日志文件已损坏

  1. 我们使用 ETW 自定义事件源(继承自 Microsoft.Diagnostics.Tracing.EventSource,Microsoft.Diagnostics.Tracing.EventSource.Redist.1.1.28 来自 NUGET)来检测我们的应用程序。

  2. 我们的提供程序在可以捕获文件中的事件的会话中启用。下面是配置跟踪会话:

    • 流模式:文件

跟踪缓冲区

  • 缓冲区大小:512 KB
  • 最小缓冲区:200
  • 最大缓冲区:400
  • 冲洗计时器:0 秒

文件:

  • 日志模式:新文件(达到最大文件大小的新文件)停止条件:
  • 最大大小:11MB

    1. 最大事件速率约为每秒几百个事件。
    2. 我们使用 Windows 服务器 2012 SP1。

有时我们会看到生成的 ETL 文件大小为 11MB(或有时更大),但它的事件为零。这主要发生在系统以最大事件率运行几天的可靠性服务器上。一旦发生这种情况,此后的所有日志文件都为零事件,此后我们将丢失所有事件。

尝试在 Windows 性能分析器中打开日志时,会显示以下错误消息。

Windows 性能分析器错误

这个问题很少重现。这使得尝试不同的试验和错误变得困难。

尝试的解决方案(无效):

  1. 将 Min 和 Max 缓冲区的数量分别减少到 24 和 48。
  2. 将冲洗计时器引入 10 秒。当事件率低时,这有一个缺点是创建 11MB 的日志文件并且事件很少。

有人遇到过这样的问题吗?请帮助。

0 投票
1 回答
185 浏览

event-flow - Microsoft.Diagnostics.EventFlow with Inputs.EventSource

I am trying to use EventSource with Microsoft.Diagnostics.EventFlow and I cannot make it output to the console. Here is an example where it works with Inputs.Trace but does not work with Inputs.EventSource:

myEventFLowConfig.json:

}

MyEventSource.cs

console app:

in the console app, I am using both EventSource and Trace as inputs, however only the Trace one is shown in the console. What am I doing wrong with the EventSource that it does not show up in the console?

Thanks!

0 投票
0 回答
199 浏览

c# - 如何禁用 EventSource 事件的堆栈?

使用 .Net Core 3.1

我已经像这样实现了我的事件源:

然后我使用 dotnet-trace 收集跟踪,如下所示:

然后我在 PerfView 中打开跟踪日志并查看我的事件: 使用 dotnet-trace 收集的事件

如您所见,每个事件都包含堆栈。尽管在我的场景中它绝对没用,但它会产生额外的开销。如何禁用堆栈收集?

另一个问题是:是否可以禁用 Microsoft-Diagnostics-DiagnosticSource 提供程序的堆栈?我在 PerfView 日志中看到了类似的内容:

我尝试使用“堆栈”键值对运行集合:

但这并没有影响任何事情。