You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows上访问Event Source提供程序日志?

如何访问.NET 8 WinUI3应用的EventSource日志?

问题背景

我有一个运行在Windows上、使用.NET 8的WinUI 3桌面应用,通过CreateDefaultBuilder配置了默认日志提供程序,按文档说明已包含Console、Debug、EventSource、EventLog(仅Windows)这几个提供程序。我的appsettings.json配置如下:

"Logging": {
   "LogLevel": {
      "Default": "Information",
   },
   "EventLog": {
      "LogLevel": {
        "Default": "Information"
      }
   }
}

应用中调用了logger.LogInformation("Hello world!");,目前各日志提供程序的输出情况:

  • Console:暂不关注
  • Debug:可在Visual Studio输出窗口查看
  • EventSource:不知道如何访问,需了解方法
  • EventLog:可在Windows事件查看器>Windows日志>应用程序中查看

文档说明:

EventSource提供程序写入名为Microsoft-Extensions-Logging的跨平台事件源,在Windows上,该提供程序使用ETW。

请问如何访问这些Event Source日志?我在事件查看器中未找到,能否使用性能监视器?


解决方案

方法1:通过事件查看器访问

EventSource(ETW)日志不在常规的Windows日志目录下,需按以下路径查找:

  1. 打开事件查看器,展开左侧应用程序和服务日志节点
  2. 展开Microsoft子节点,再找到Windows节点
  3. 定位到Microsoft-Extensions-Logging日志项(若未显示,先运行应用触发日志写入,再刷新事件查看器)
  4. 点击日志项即可查看logger.LogInformation输出的内容

若仍找不到,可使用事件查看器的「筛选当前日志」功能,输入事件源名称Microsoft-Extensions-Logging精准定位。

方法2:使用性能监视器捕获

性能监视器可以实时监控ETW事件:

  1. 按下Win+R输入perfmon,打开性能监视器
  2. 在左侧导航选择性能监视器,点击工具栏的绿色加号(添加计数器)
  3. 在弹出窗口中找到Event Tracing for Windows分类
  4. 展开后选择Microsoft-Extensions-Logging事件源,勾选需要监控的事件级别(如Information),点击「添加」后确认
  5. 运行WinUI3应用触发日志,性能监视器会实时展示捕获到的EventSource日志

方法3:使用dotnet-trace命令行工具

用.NET官方工具可以捕获并导出日志:

  1. 安装工具:dotnet tool install --global dotnet-trace
  2. 打开任务管理器,找到应用的进程ID(PID)
  3. 执行捕获命令:dotnet trace collect --providers Microsoft-Extensions-Logging -p <你的应用PID>
  4. 停止捕获后会生成.nettrace文件,用Visual Studio打开即可查看详细日志内容

内容的提问来源于stack exchange,提问作者Slion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:48:13