gpt4 book ai didi

azure - 避免从函数应用程序中记录应用程序见解中的严重性级别 0

转载 作者:行者123 更新时间:2023-12-02 23:13:41 24 4
gpt4 key购买 nike

在我的 Azure 解决方案中,我有 1 个应用服务和 2 个功能应用记录到 1 个应用程序洞察实例。在特定环境中,我想减少日志记录负载,因此我想摆脱严重性级别 0 的日志。

我目前专注于其中一个功能应用程序,我们将其称为 fa1。我使用 ILogger 添加为 LogDebug 的日志记录语句不会按预期显示在应用程序见解中。但是我可以在应用程序洞察中看到以下条目:

  • “使用 ClientRequestId '{...}' 对队列 '{...}' 上的函数 '{name of function in fa1}' 进行轮询,在 5 毫秒内发现 0 条消息。”
  • “函数“{fa1 中的函数名称}”将等待 60000 毫秒,然后再轮询队列“{...}”。”

我还看到以下条目,但我不知道哪个服务正在生成它们:

  • “[HostMonitor]主机进程CPU统计信息:EffectiveCores=1,CpuLoadHistory=(0,0,0,0,0,0,0,0,0,0),AvgCpuLoad=0,MaxCpuLoad=0”<
  • “[HostMonitor]主机聚合CPU负载0”

主机.json:

{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
},
"logLevel": {
"Function": "Warning",
"default": "Warning"
}
}
}

启动.Configure():

builder.Services.AddLogging(loggingBuilder =>
{
var key = Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY");
loggingBuilder.AddApplicationInsights(key);
});
builder.Services.AddSingleton(sp => // Needed for injected ILogger<> to log in AI
{
var key = Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY");
return new TelemetryConfiguration(key);
});

我也尝试了 loggingBuilder.AddApplicationInsights(key).SetMinimumLevel(LogLevel.Warning); 。所有设置均无效,上述日志条目不断出现。

请注意,我设置警告只是为了测试。最后我想要信息。

我该如何删除这些严重级别 0 的日志条目?

最佳答案

看看不同的日志类别 here .

我想说要减少日志记录,但保留请求和依赖项等重要信息,设置 Microsoft , WorkerFunction.<YOUR_FUNCTION_NAME>类别到 LogLevel 警告(或无),但保留 Function.<YOUR_FUNCTION_NAME>.User以及所有其他信息。这将删除大部分日志记录,但保留门户中可用的统计信息和成功/失败日志。

通过做loggingBuilder.AddApplicationInsights(key).SetMinimumLevel(LogLevel.Warning);您仅更改“函数”类别的日志级别,而不更改其他类别的日志级别。

{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
},
"logLevel": {
"Function.<YOUR_FUNCTION_NAME>": "Warning",
"Function.<YOUR_FUNCTION_NAME>.User": "Information",
"Microsoft": "Warning",
"Worker": "Warning",
"default": "Information"
}
}
}

类别Function.<YOUR_FUNCTION_NAME>是一个棘手的问题。它会生成有用的日志和一些噪音。尝试使用“警告”和“信息”作为日志级别,看看哪种最适合您。

编辑您配置该功能的方式是错误的。 Application Insights 由 Azure Functions 自动添加 ( source )。如果你想直接使用TelemetryClient您需要添加 NuGet 包 Microsoft.Azure.WebJobs.Logging.ApplicationInsights 即可。

默认集成将从host.json获取配置文件。现在,您正在手动设置日志记录,这将忽略这些设置,因为未加载配置。这就是为什么,例如,消息轮询队列“{...}”上的函数“{fa1 中的函数名称}”(ClientRequestId 为“{...}”)在 5 毫秒内发现 0 条消息。<属于 Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener 类别的/em> 会被记录,不会被过滤。因此,请删除您在问题中显示的代码。

关于azure - 避免从函数应用程序中记录应用程序见解中的严重性级别 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65034967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com