.NET - Azure 函数不工作范围日志

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

您好,我在 Azure Functions 中的应用程序洞察日志中遇到了一个相当奇怪的问题。我无法正常记录范围值。我尝试了不同的设置,但仍然无法实现这一目标。在 WebApi 应用程序中它可以正常工作

程序.cs

.ConfigureLogging((context, loggingBuilder) =>
{
    loggingBuilder.AddApplicationInsights("...");
})

主持人:

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "Default": "Trace",
      "Microsoft.AspNetCore": "Warning"
    },
    "applicationInsights": {
      "logLevel": {
        "Default": "Information"
      }
    }
  },
  "extensions": {
    "serviceBus": {
      "prefetchCount": 32,
      "messageHandlerOptions": {
        "autoComplete": true,
        "maxConcurrentCalls": 32,
        "maxAutoRenewDuration": "00:30:00"
      }
    },
    "eventHub": {
      "maxBatchSize": 64,
      "prefetchCount": 256,
      "batchCheckpointFrequency": 1
    }
  }
}

日志:

    using (_logger.BeginScope(new Dictionary<string, object> { ["Scope"] = "Test" }))
    {
        _logger.LogInformation("Import check requested started");

        _logger.LogWarning("Test Warning");
    }

结果:

非常感谢

c# .net azure azure-functions azure-application-insights
1个回答
0
投票

要将日志添加到警告级别范围以下,您需要将其添加到

Program.cs
中的
.NET 8
文件中。

.ConfigureLogging(logging =>
{
    logging.Services.Configure<LoggerFilterOptions>(options =>
    {
        LoggerFilterRule defaultRule = options.Rules.FirstOrDefault(rule => rule.ProviderName
            == "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");
        if (defaultRule is not null)
        {
            options.Rules.Remove(defaultRule);
        }
    });
})
.ConfigureAppConfiguration((hostContext, config) =>
{
    config.AddJsonFile("host.json", optional: true);
})
.ConfigureLogging((hostingContext, logging) =>
{
    logging.AddApplicationInsights(console =>
    {
        console.IncludeScopes = true;
    });

    logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
})

这对我有用:

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

namespace Isolatedfunc
{
    public class Function1
    {
        private readonly ILogger<Function1> _logger;

        public Function1(ILogger<Function1> logger)
        {
            _logger = logger;
        }

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

host.json
:

{
    "version": "2.0",
      "logging": {
        "logLevel": {
          "default": "Trace"

        },
        "applicationInsights": {
          "samplingSettings": {
            "isEnabled": true,
            "excludedTypes": "Request"
          },
          "enableLiveMetricsFilters": true
    }
  }
}

OUTPUT

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