使用 `func start` 在本地运行 Azure 函数时,如何查看 LogDebug 和 LogTrace 消息

问题描述 投票:0回答:1

我使用 mcr.microsoft.com/dotnet/sdk:8.0 启动了一个容器,并按照 https://learn.microsoft.com/en-us/azure/azure-functions/create- 中的说明安装了 Azure Function 工具。第一个函数-cli-csharp?tabs=linux%2Cazure-cli。 这些说明不起作用,因为他们的 InRelease 文件被搞乱了,但我确实手动下载了软件包并安装了它。

我的

dotnet --version
给出
8.0.403
func --version
给出
4.0.6280

完成后,我使用

func new
并选择
1. dotnet (isolated worker model)
1. c#-isolated
2. HttpTrigger
。 最后,我给出了函数名称
MyFunction

这为我提供了运行函数所需的所有文件,并且它响应 http 请求。

然后我修改了构造函数,为我感兴趣的每个级别添加

LogXXXX()
消息。生成的整个源文件是:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace t4
{
    public class MyFunction
    {
        private readonly ILogger<MyFunction> _logger;

        public MyFunction(ILogger<MyFunction> logger)
        {
            _logger = logger;
            logger.LogError("Testing Error");
            logger.LogWarning("Testing Warning");
            logger.LogInformation("Testing Information");
            logger.LogDebug("Testing Debug");
            logger.LogTrace("Testing Trace");
        }

        [Function("MyFunction")]
        public IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
        {
            _logger.LogInformation("C# HTTP trigger function processed a request.");
            return new OkObjectResult("Welcome to Azure Functions!");
        }
    }
}

如果我使用

func start
func host start
执行此操作,然后触发该函数,我会收到
LogError
LogWarning
LogInformation
消息,但不会收到
LogDebug
LogTrace

我尝试了多种不同的方式修改hosts.json。

{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingSettings": {
                "isEnabled": true,
                "excludedTypes": "Request"
            },
            "enableLiveMetricsFilters": true
        },
        "logLevel": {
          "Function": "Trace",
          "Function.MyFunction": "Trace",
          "Function.MyFunction.User": "Trace",
          "Functions.MyFunction": "Trace",
          "Functions.MyFunction.User": "Trace",
          "default": "Trace"
        }
    }
}

这对代码的其他部分有影响,但对我的功能没有影响。 我原以为

Function.MyFunction.User
会有效果,但没有。 在看到相关消息后,我将
Functions*
口味作为一个疯狂的猜测。

我也尝试过这个答案https://stackoverflow.com/a/65688442/12195361但没有不同的行为。

azure-functions
1个回答
0
投票

我使用

func start
func host start
执行此操作,然后触发该函数,我收到
LogError
LogWarning
LogInformation
消息,但没有
LogDebug
LogTrace

我也使用下面的program.cs获得了跟踪和调试日志:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

var rith_cho = new HostBuilder()
    .ConfigureFunctionsWebApplication()
    .ConfigureServices(ri_sc =>
    {
        ri_sc.AddApplicationInsightsTelemetryWorkerService();
        ri_sc.ConfigureFunctionsApplicationInsights();
        ri_sc.Configure<LoggerFilterOptions>(rich =>
        {
            LoggerFilterRule ri_tr = rich.Rules.FirstOrDefault(rule => rule.ProviderName == "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");

            if (ri_tr is not null)
            {
                rich.Rules.Remove(ri_tr);
            }
        });
    })
    .ConfigureAppConfiguration((hostContext, ri_cfg) =>
    {
        ri_cfg.AddJsonFile("host.json", optional: true);
    })
    .ConfigureLogging((hct, rilg) =>
    {
        rilg.AddApplicationInsights(rics =>
        {
            rics.IncludeScopes = true;
        });

        rilg.AddConfiguration(hct.Configuration.GetSection("Logging"));
    })
    .Build();

rith_cho.Run();

主机.json:

{
    "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      },
      "enableLiveMetricsFilters": true
    },
    "logLevel": {
      "Function": "Trace",
      "Function.Function1": "Trace",
      "Function.Function1.User": "Trace",
      "default": "Trace"
    }
  }
  }

Function.cs 与你的相同。

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.