Azure Functions中两类Application Insights NuGet包的适用场景及差异
.NET Core 6 Azure Functions中两个Application Insights NuGet包的差异与适用场景
1. Microsoft.Extensions.Logging.ApplicationInsights
- 这是适配.NET标准日志系统(
ILogger抽象)的轻量级包,核心作用就是把你通过ILogger输出的日志同步到Application Insights。 - 用法和你测试的一致:在启动类注册
TelemetryConfiguration实例后,函数类里注入ILogger,直接用LogInformation/LogError等方法写日志,这些内容会自动出现在AI的日志面板里。 - 注册代码:
builder.Services.AddSingleton(new TelemetryConfiguration { ConnectionString = Environment.GetEnvironmentVariable("APPLICATIONINSIGHTS_CONNECTION_STRING")});
- 适合场景:
- 只需要把现有
ILogger日志同步到AI,不需要额外遥测功能。 - 想保持代码和日志系统的解耦,以后换日志平台不用改太多代码。
- 只需要把现有
2. Microsoft.ApplicationInsights.AspNetCore
- 这是完整的Application Insights ASP.NET Core SDK,除了日志转发,还自带全套遥测能力——自动收集请求链路、依赖调用、性能数据,同时支持自定义遥测。
- 用法如你测试:启动类用
AddApplicationInsightsTelemetry注册服务,之后函数类注入ITelemetryClient,可以直接发送自定义事件、业务指标、异常追踪等,同时应用运行的默认数据也会自动上传到AI。 - 注册代码:
var options = new ApplicationInsightsServiceOptions { ConnectionString = SharedMethods.GetEnvironmentVariable("APPLICATIONINSIGHTS_CONNECTION_STRING") }; builder.Services.AddApplicationInsightsTelemetry(options);
- 适合场景:
- 需要发送业务相关的自定义遥测(比如用户下单事件、支付成功率指标)。
- 想要全面监控应用的运行状态,比如请求响应时间、数据库调用耗时。
- 需要用到AI的高级功能,比如遥测采样、自定义遥测处理器。
核心差异对比
| 对比维度 | Microsoft.Extensions.Logging.ApplicationInsights | Microsoft.ApplicationInsights.AspNetCore |
|---|---|---|
| 核心功能 | 仅日志转发到AI | 完整遥测+日志+自动监控 |
| 依赖的核心API | 基于.NET标准ILogger抽象 | 直接依赖AI专属的ITelemetryClient等API |
| 自动收集默认遥测 | 无自动收集 | 自动收集请求、依赖、性能等数据 |
| 自定义遥测支持 | 仅能通过结构化日志间接实现 | 完全支持自定义事件、指标、异常等 |
内容的提问来源于stack exchange,提问作者PavanKumar GVVS
相关产品推荐
相关产品推荐

