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

为.NET Framework 4.6控制台应用集成OpenTelemetry

.NET Framework 4.6 控制台应用集成OpenTelemetry日志示例

确实,.NET Framework相关的OpenTelemetry示例确实比.NET Core的少很多,但完全能搞定!我给你整了一个亲测可用的控制台应用示例,专门适配.NET Framework 4.6:

第一步:安装兼容的NuGet包

.NET Framework 4.6对NuGet包版本有要求,得选兼容的OpenTelemetry系列包。你可以通过Package Manager Console执行以下命令安装:

Install-Package OpenTelemetry -Version 1.6.0
Install-Package OpenTelemetry.Exporter.Console -Version 1.6.0
Install-Package OpenTelemetry.Extensions.Logging -Version 1.6.0
Install-Package Microsoft.Extensions.Logging -Version 2.1.1

或者直接在NuGet包管理器中搜索这些包,手动选择对应版本安装。

第二步:完整的控制台代码示例

下面是Program.cs的完整代码,每一步都做了简单注释:

using Microsoft.Extensions.Logging;
using OpenTelemetry;
using OpenTelemetry.Logs;
using System;

namespace OTelNetFrameworkDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 初始化日志工厂,绑定OpenTelemetry
            using var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder.AddOpenTelemetry(loggingOptions =>
                {
                    // 添加控制台导出器,方便实时查看日志效果
                    loggingOptions.AddConsoleExporter();
                    
                    // 设置日志捕获的最低级别(按需调整)
                    loggingOptions.SetMinimumLevel(LogLevel.Information);
                    
                    // 配置服务元数据,方便后端识别来源
                    loggingOptions.SetResourceBuilder(
                        ResourceBuilder.CreateDefault()
                            .AddService(serviceName: "NetFramework-Console-App", serviceVersion: "1.0.0"));
                });
            });

            // 创建日志实例
            var logger = loggerFactory.CreateLogger<Program>();

            // 测试不同级别的日志输出
            logger.LogInformation("这是一条来自.NET Framework 4.6的OpenTelemetry信息日志");
            logger.LogWarning("系统检测到潜在风险,这是一条警告日志");
            logger.LogError(new InvalidOperationException("模拟异常"), "这是一条附带异常信息的错误日志");

            Console.WriteLine("日志已发送至OpenTelemetry控制台导出器,按回车退出...");
            Console.ReadLine();
        }
    }
}

额外注意事项

  • 版本兼容性:OpenTelemetry 1.6.x系列是适配.NET Framework 4.6的最低稳定版本,更高版本可能要求.NET Framework 4.6.1及以上,注意不要随意升级。
  • 扩展到其他后端:如果需要把日志发送到Jaeger、OTLP后端等,只需安装对应导出器包(比如OpenTelemetry.Exporter.Jaeger),然后替换AddConsoleExporter()为对应的AddJaegerExporter()并配置相关参数即可。
  • 集成现有日志框架:如果你已经在用log4net、NLog等日志库,可以安装对应的OpenTelemetry适配包(比如OpenTelemetry.Instrumentation.Log4Net),把现有日志链路接入OpenTelemetry。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:23:13