Azure 函数 - 通过 host.json 的 LogLevel 无法正常工作

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

我正在 .NET 8 中制作一个 Azure Function 应用程序。

我尝试通过 host.json 文件配置日志记录级别,但它无法按预期工作。我尝试非常简单地将默认级别设置为“警告”,然后将根命名空间设置为“信息”,以便我看到代码中的信息日志,而仅看到其他任何内容的警告:

"logLevel": {
  "default": "Warning",
  "Root.Namespace": "Information"
},

当我添加此内容时,日志记录确实发生了变化,因此发生了一些事情,但是我的信息日志从未显示出来。我只是在本地运行并查看控制台输出。

当我在 Program.cs 中配置它时,如下所示:

.ConfigureLogging(logging =>
{
    logging.Services.Configure<LoggerFilterOptions>(options =>
    {
        options.AddFilter("Default", LogLevel.Warning);
        options.AddFilter("Root.Namespace", LogLevel.Information);
    });
})

这个效果很好。

发生什么事了?我正在登录从“Root.Namespace”下降的命名空间,即“Root.Namespace.Some.Thing.Else”

我读到的所有内容都说这应该有效?

编辑:如果我在 Program.cs 和 host.json 中都有它,它也不起作用,所以看起来 host.json 正在覆盖它。

c# logging azure-functions .net-8.0 ilogger
1个回答
0
投票

当我添加此内容时,日志记录确实发生了变化,因此发生了一些事情,但是我的信息日志从未显示出来。

在 Azure Functions 中,您必须使用

Function.FunctionName
,而不是命名空间。然后就会出现日志:

主机.json:

{
    "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      },
      "enableLiveMetricsFilters": true
    },
    "default": "Warning",
    "Function.Function1": "Information"
  }
}

函数.cs:

using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;

namespace FunctionApp6
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest tst,
            ILogger ri_lger)
        {
            ri_lger.LogInformation("Hello Rithwik Bojja, How are You!!");
            string ri_out = "Hello Rithwik";
            return new OkObjectResult(ri_out);
        }
    }
}

输出:

enter image description here

或者它也可以与下面的host.json一起使用(对于多个函数,不需要添加所有函数名称):

在此我使用了

Functionappname.Function

{
    "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      },
      "enableLiveMetricsFilters": true
    },
    "default": "Warning",
    "FunctionApp6.Function": "Information"
  }
}

有关更多信息,请参阅我在 SO-Thread 中的回答。

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