gpt4 book ai didi

c# - Azure 应用服务中的自定义日志记录配置

转载 作者:行者123 更新时间:2023-12-03 06:54:07 24 4
gpt4 key购买 nike

我们正在尝试在 Azure 应用程序中配置过滤日志记录,我们已将应用程序配置为保存到 Blob 存储,并且我们可以很好地访问和查看这些日志记录。

我们遇到的问题是,目前 azure 会记录所有服务中的所有信息级别日志,因此我们正在获取路由、 Entity Framework 等的信息级别日志,而对于日常日志记录,我们真正需要的是我们的日志。 Controller 中的手动日志记录正在执行。

我一直以为我们可以像这样过滤 appsettings.json 中的日志:

"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "None"
}

但是这个在 Azure 中被忽略,所有级别的日志都会继续,在 appsettings.development.json 中尝试相同的设置并得到相同的结果。

我还在文档中读到,我们可以以编程方式向 Azure Application Insights 日志添加过滤器,但这似乎也不起作用(还在环境变量中设置了应用程序见解连接字符串)>

builder.Services.AddApplicationInsightsTelemetry();

builder.Host.ConfigureLogging(log =>
{
log.ClearProviders();
log.AddFilter<ApplicationInsightsLoggerProvider>("MyAppName", LogLevel.Information);
log.AddFilter<ApplicationInsightsLoggerProvider>("Microsoft", LogLevel.Error);
log.AddAzureWebAppDiagnostics();
});

这也没有提供我们所希望的解决方案。有没有具体的配置方法?提前致谢!

最佳答案

现在解决了这个问题,感谢所有添加评论的人。对于遇到此问题的其他人,您必须确保您的 appsettings.json 包含完整范围的日志记录配置文件。您可能认为默认 LogLevel 适用于所有应用程序,但事实并非如此。

 "Logging": {
"LogLevel": { // No provider, LogLevel applies to all the enabled providers.
"DigitalAppraisalSystem": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning"
},
"Debug": { // Debug provider.
"LogLevel": {
"DigitalAppraisalSystem": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning"
}
},
"AzureAppServicesFile": {

"LogLevel": {
"DigitalAppraisalSystem": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning"
}
},
"AzureAppServicesBlob": {

"LogLevel": {
"DigitalAppraisalSystem": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning"
}
},
"ApplicationInsights": {
"LogLevel": {
"DigitalAppraisalSystem": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning"
}
}

除此之外,Program.cs 还需要配置这些日志,具体来说:

builder.Host.ConfigureLogging((hostingContext, log) =>
{
log.ClearProviders();
log.AddAzureWebAppDiagnostics();
log.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
log.AddConsole();
log.AddDebug();
log.AddEventSourceLogger();
});

现在,Azure 中的日志筛选正在按预期工作,并且 Blob 存储中没有填充路由跟踪以及导致我们自己的用户操作可见性出现问题的其他所有内容。

关于c# - Azure 应用服务中的自定义日志记录配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73280275/

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