【问题标题】:Azure Function Logging with Serilog to Application Insights使用 Serilog 到 Application Insights 的 Azure 函数日志记录
【发布时间】:2021-04-18 05:23:58
【问题描述】:

我们将 Azure Function V3 与 dot net core 3.1 结合使用,并将跟踪和事件记录到 Application Insights。 这工作得很好。但我们想将对象数据添加到日志负载中,因此我们使用 Serilog

如果我们使用来自namespace Microsoft.Extensions.LoggingILogger 接口,对象将不会被正确序列化。

_logger.LogInformation("Test {@model}", testmodel);

如果我们使用 Serilog 接口,它可以工作,并且数据将在 Application Insights 中序列化:

logger.Information("Test Serilog {@model}", testmodel);

Startup.cs 看起来像这样:

public class Startup : FunctionsStartup
{
  public override void Configure(IFunctionsHostBuilder builder)
  {
    var logger = new LoggerConfiguration()
      .WriteTo.ApplicationInsights(TelemetryConfiguration.CreateDefault(), TelemetryConverter.Traces, Serilog.Events.LogEventLevel.Information)
      .Destructure.ToMaximumCollectionCount(10)
      .Destructure.ToMaximumDepth(4)
      .CreateLogger();
    builder.Services.AddLogging(c => c.AddSerilog(logger));
    // Add other services
  }
}

【问题讨论】:

    标签: azure .net-core azure-application-insights serilog ilogger


    【解决方案1】:

    我建议看看 Arcus Observability 库。它允许您使用 ILogger 接口将日志、自定义指标等写入 Application Insights(使用 Serilog)。 https://observability.arcus-azure.net/

    https://observability.arcus-azure.net/guidance/use-with-dotnet-and-functions.html

    【讨论】:

      【解决方案2】:

      您准备好使用 Serilog 了吗?否则,更简单(且官方记录)的方法可能是在函数中使用 AppInsights TelemetryClient。通过这种方式,您可以跟踪到 AppInsights 的各种事件和遥测数据:

      https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library?tabs=v2%2Ccmd#log-custom-telemetry-in-c-functions

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-09
      • 2021-09-21
      • 2022-11-05
      • 1970-01-01
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多