Azure Function App Core v2 中的 Application Insights

Application Insights in Azure Function App Core v2

我正在尝试使用标准 ILogger 并将其记录到 Azure。首先,我在主机文件中添加了以下内容:

{
  "version": "2.0",
  "Logging": {
    "ApplicationInsights": {
      "LogLevel": {
        "Default": "Trace",
        "System": "None",
        "Microsoft": "None"
      }
    }
  },
  "ApplicationInsights": {
    "Instrumentationkey": "xx-xx-xx-xx-xx"
  }
}

这是我的职能:

namespace Jobs
{
    public static class ExchangeRates
    {
        [FunctionName("ExchangeRates")]
        public static void Run([TimerTrigger("0 0 0 * * *", RunOnStartup =true)]TimerInfo myTimer, ILogger log)
        {
            string lol1 = "lol1 text";
            string lol2 = "lol2 text";

            log.LogWarning("adsad");
            log.LogDebug("LogDebug", "asdasd", lol2);
            log.LogTrace("LogTrace {lol1}, {lol2}", lol1, lol2);
            log.LogInformation("LogInfo {lol1}, {lol2}", lol1, lol2);
            log.LogError("LogError");
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");            
        }
    }
}

但是没有添加日志记录。我还尝试安装 nuget 包: Microsoft.Extensions.Logging.ApplicationInsights

我是否遗漏了什么 - 使函数应用写入 Application Insights 需要什么?

我认为您是 运行 具有应用程序洞察力的本地 azure 函数,对吧?

如果是,其实不推荐,因为application insights在azure portal中集成了azure function。

但仅供测试,您可以在local.settings.json中添加这行设置"APPINSIGHTS_INSTRUMENTATIONKEY": "the key"(记得设置为"copy if newer")。 local.settings.json 中的示例设置如下所示:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "xxxxxx",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "APPINSIGHTS_INSTRUMENTATIONKEY": "the key"
  }
}

顺便说一句,我在测试中还安装了nuget包Microsoft.Extensions.Logging.ApplicationInsights