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

如何为特定ILogger<T>查找Application Insights日志

定位特定ILogger的Application Insights日志

嘿,我来帮你搞定这个问题!针对你代码里的ILogger<MyClass>日志,在Application Insights里可以通过以下几种方式精准查找:

1. 利用自动生成的CategoryName属性

ILogger<T>的日志会自动带上CategoryName属性,它的值就是你的类的完整命名空间+类名(比如YourNamespace.MyClass,记得替换成你实际的命名空间)。你可以在Application Insights的日志查询界面,用Kusto语句过滤:

traces
| where CategoryName == "YourNamespace.MyClass"
| order by timestamp desc

这样就能拉出所有来自ILogger<MyClass>的日志了。

2. 结合自定义EventId精准定位特定事件

你代码里定义了NoEntryFoundEventId(ID=1,名称"No Entry Found"),Application Insights会把EventId的ID存在EventId属性里,名称存在EventName属性里。如果要找这个特定事件的日志,可以叠加过滤条件:

traces
| where CategoryName == "YourNamespace.MyClass"
| where EventId == 1 or EventName == "No Entry Found"
| order by timestamp desc

3. 通过日志参数EntryId筛选

你日志里用了{EntryId}占位符,AI会自动把这个参数解析成自定义属性,存在customDimensions.EntryId下。如果要找某个具体EntryId的日志,可以这样写:

traces
| where CategoryName == "YourNamespace.MyClass"
| where customDimensions.EntryId == "123" // 替换成你要查询的EntryId值
| order by timestamp desc

4. 不用写代码:Azure门户可视化筛选

如果你不想写Kusto语句,也可以在Azure门户的Application Insights日志页面操作:

  • 打开traces表后,点击顶部的「添加筛选器」按钮
  • 选择CategoryName,输入你的类的完整名称
  • 还可以继续添加EventId、EntryId等筛选条件,一步步缩小范围

小提醒:一定要用完整的命名空间+类名作为CategoryName的值,不然会匹配不到对应的日志哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:39:24