为 azure 函数设置日志记录的最简单方法是什么?

Fre*_*red 2 .net logging azure azure-functions

在我的 azure 函数代码中,我使用由依赖注入提供的 ILogger。代码如下所示:

public QueueTriggerFunction(IConfiguration configuration,
    ILogger<QueueTriggerFunction> logger)
{
    _config = configuration;
    _logger = logger;
    _logger.LogInformation("Creating QueueTriggerFunction");
}


[FunctionName("QueueTrigger")]
public async Task Run([QueueTrigger("%AzureStorage:Queue%")] AzureQueueModel task, IBinder binder)
{
    _logger.LogInformation($"C# Queue trigger function processed: {task}");
Run Code Online (Sandbox Code Playgroud)

当我发布此代码并在 Azure 中运行它时,我希望能够在某处看到日志,但我不知道在哪里。我一直在尝试阅读这方面的内容,但一无所获。我看到很多人提到了“应用程序洞察”。你必须用那个吗?理想情况下,我只想以某种方式查看我的日志消息。

我有如下所示的 host.json 文件。我知道这对于日志记录有一定的重要性:

{
  "version": "2.0",
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 6

  1. 通过 Visual Studio 2022创建Azure 函数队列触发器。

  2. 通过NuGet Package Manager将Application Insights包添加到项目中,即 在此输入图像描述

  3. 从 Visual Studio 发布项目时,配置Application Insights 在此输入图像描述

  4. 配置(创建 App Insights 实例)后,您将获得App Insights 连接字符串> 将它们复制到任何文本编辑器中,然后单击下一步 > 完成。 在此输入图像描述

  5. local.settings.json文件中,添加 Instrumentation Key 值

在此输入图像描述

  1. 将项目发布到 Azure 门户中的函数应用程序,并启用“设置”菜单下的“应用程序见解”。

在此输入图像描述 在本地运行该函数:

在此输入图像描述

在 Azure 门户中:

  1. 在浏览器的一个选项卡中打开函数应用存储帐户,并在另一选项卡中打开您的函数。运行此函数时,在其中创建一个队列和消息以检查函数是否运行良好。

在此输入图像描述

  1. 您可以在测试窗口的上述控制台中看到队列中发生一次插入的日志。此外,您还可以在门户中函数应用的概述窗格中查看服务器请求、执行计数、内存使用情况。

在此输入图像描述

  1. 您可以在监控菜单中的指标下查看指标日志,例如响应时间队列中的请求执行计数服务器故障等。

在此输入图像描述

  1. 运行以下功能时, 您还可以在“监控”菜单下查看日志流:在此输入图像描述

通过切换到日志流中所需的选项来 查看文件系统日志Application Insights 日志:在此输入图像描述

  1. 您还可以使用 KQL 查询查看日志。
  2. 查看Application Insights 资源中的实时指标数据,如下所示:

在此输入图像描述

我的host.json

{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingSettings": {
                "isEnabled": true,
                "excludedTypes": "Request"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要了解有关 Application Insights 资源中的实时指标流和日志的更多信息,请参阅此Microsoft 文档

如果您的函数项目中有依赖项,要启用依赖项日志,请参阅此Host.Json 配置文档,其中提供了有关性能计数器日志记录、依赖项日志记录、超时值定义等的完整日志记录数据。

更新答案:

是的,您还可以使用门户中提供的TimeRange选项检查以前的(旧)日志,如下所示:

在此输入图像描述

此外,可用于函数的先前和当前执行计数、请求计数、响应计数、服务器故障计数等的指标。

在此输入图像描述

在此输入图像描述

参考:

  1. Application Insights 概述和配置
  2. Azure Functions 流式传输日志