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

如何为ASP.NET Core 7.0应用添加Honeycomb.io日志功能?

ASP.NET Core 7.0 集成Honeycomb.io日志解决方案

一、将OpenTelemetry配置整合到Program.cs

1. 安装必要NuGet包

在项目根目录执行以下命令:

dotnet add package OpenTelemetry.Extensions.Hosting
dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol
dotnet add package OpenTelemetry.Instrumentation.AspNetCore

2. 修改Program.cs配置

ASP.NET Core 7.0使用顶级语句模式,直接在Program.cs中通过内置的builder.Configuration(即IConfiguration实例)完成OpenTelemetry配置,示例代码如下:

using OpenTelemetry;
using OpenTelemetry.Trace;
using OpenTelemetry.Logs;

var builder = WebApplication.CreateBuilder(args);

// 配置OpenTelemetry追踪(Trace)
builder.Services.AddOpenTelemetry()
    .WithTracing(tracingBuilder => tracingBuilder
        // 启用ASP.NET Core请求追踪
        .AddAspNetCoreInstrumentation()
        // 配置Honeycomb OTLP导出器
        .AddOtlpExporter(options =>
        {
            options.Endpoint = new Uri("https://api.honeycomb.io/v1/traces");
            // 从配置读取Honeycomb密钥
            options.Headers = $"x-honeycomb-team={builder.Configuration["HONEYCOMB_API_KEY"]}";
            options.Protocol = OpenTelemetry.Exporter.OtlpExportProtocol.HttpProtobuf;
        }));

// 配置OpenTelemetry日志(Logs)
builder.Logging.AddOpenTelemetry(loggingBuilder => loggingBuilder
    .AddOtlpExporter(options =>
    {
        options.Endpoint = new Uri("https://api.honeycomb.io/v1/logs");
        options.Headers = $"x-honeycomb-team={builder.Configuration["HONEYCOMB_API_KEY"]}";
        options.Protocol = OpenTelemetry.Exporter.OtlpExportProtocol.HttpProtobuf;
    }));

// 保留你原有的应用配置(路由、中间件等)
var app = builder.Build();

// ... 你的其他中间件代码

app.Run();

这段代码直接利用ASP.NET Core内置的IConfiguration,完全符合官方指南中「传入IConfiguration配置OpenTelemetry SDK」的要求。

二、在Heroku用环境变量存储Honeycomb密钥

方法1:通过Heroku控制台设置

  1. 登录Heroku控制台,进入你的应用页面
  2. 切换到「Settings」标签页,找到「Config Vars」区域
  3. 点击「Reveal Config Vars」,添加一条配置:
    • KEY:HONEYCOMB_API_KEY
    • VALUE:你的Honeycomb密钥

方法2:通过Heroku CLI设置

在本地终端执行:

heroku config:set HONEYCOMB_API_KEY=你的密钥内容 --app 你的应用名称

ASP.NET Core会自动读取Heroku的环境变量,因此上面Program.cs中的builder.Configuration["HONEYCOMB_API_KEY"]会直接获取到这个值,无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:12:27