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

Serilog Sink无法向DataDog发送日志,寻求问题排查方案

排查ASP.NET MVC应用通过Serilog发送日志到DataDog失败的步骤
  • 验证API密钥有效性
    代码中的"datadog-key"是占位符,必须替换为你的DataDog账户有效API密钥,且该密钥需具备日志写入权限(避免使用只读密钥)。

  • 检查网络连通性
    确认应用服务器能访问intake.logs.datadoghq.com:443:

    • 用PowerShell执行命令:Test-NetConnection intake.logs.datadoghq.com -Port 443,查看是否能成功建立连接。
    • 若存在代理服务器,需在DatadogConfiguration中添加代理配置,示例:
      Dim config = New DatadogConfiguration(
          url:="intake.logs.datadoghq.com", 
          port:=443, 
          useSSL:=True, 
          useTCP:=True,
          proxyAddress:="http://your-proxy:8080",
          proxyCredentials:=New NetworkCredential("proxy-user", "proxy-pass")
      )
      
  • 确认Serilog Sink版本与依赖
    确保使用最新版的Serilog.Sinks.DatadogLogs NuGet包,旧版本可能存在兼容性或传输问题。可在NuGet包管理器中检查并更新版本。

  • 验证Serilog本身是否正常工作
    添加File Sink验证日志是否能正常生成:

    _log = New LoggerConfiguration() _
            .MinimumLevel.Debug() _
            .WriteTo.File("C:\logs\app.log", rollingInterval:=RollingInterval.Day) ' 新增本地文件输出
            .WriteTo.DatadogLogs("your-actual-key", "csharp", "Application", "DESKTOP-R4FT16J", New String() {"ecom", "serilog"}, config) _
            .CreateLogger()
    

    若本地日志文件能生成内容,说明问题出在DataDog Sink的传输环节;若本地无日志,需检查Serilog初始化逻辑是否有误。

  • 检查DataDog控制台的过滤条件
    日志可能已到达DataDog但未被筛选出来:

    • 登录DataDog日志页面,使用标签过滤:service:Application AND host:DESKTOP-R4FT16J AND tag:ecom
    • 确认选择了正确的时间范围(避免时间范围过窄导致看不到日志)。
  • 捕获Serilog Sink的错误信息
    启用Serilog的SelfLog查看Sink内部错误:

    Sub Application_Start()
        ' 启用SelfLog输出到调试窗口
        Serilog.Debugging.SelfLog.Enable(Sub(msg) System.Diagnostics.Debug.WriteLine(msg))
        
        ' 原初始化代码...
        Dim config = New DatadogConfiguration(url:="intake.logs.datadoghq.com", port:=443, useSSL:=True, useTCP:=True)
        _log = New LoggerConfiguration() _
                .MinimumLevel.Debug() _
                .WriteTo.DatadogLogs("your-actual-key", "csharp", "Application", "DESKTOP-R4FT16J", New String() {"ecom", "serilog"}, config) _
                .CreateLogger()
        Log.Logger = _log
        _log.Information("Serilog initiated for Ecom...")
    End Sub
    

    运行应用后查看Visual Studio的输出窗口,获取Sink的错误提示(如认证失败、连接超时等)。

  • 确认传输方式是否匹配
    若你计划通过本地DataDog Agent转发日志,而非直接发送到DataDog intake,需修改DatadogConfiguration的url为Agent地址(通常是localhost:10516),并确保Agent已配置接收日志的端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:43:19