“我的应用程序服务”正在使用TelemetryClient登录到appinsights。这可以正常工作,并且我可以按预期方式记录所有内容。我的问题是现在日志太多了,我进行Appinsight的费用也太高了。我只需要捕获警告和错误就可以减少日志记录,但是如果出现问题,则能够记录调试和跟踪消息。我通过将Azure功能添加到该功能的host.json文件的日志记录部分来完成此操作。是否可以通过App Service项目执行类似的操作,以便我可以通过门户网站更改日志级别过滤,而不必重新编译和部署新版本?
我的Azure函数的host.json看起来像这样。我正在为我的App Service网站寻求类似的服务:
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"Function": "Warning",
"Default": "Warning",
"System": "Information",
"Microsoft": "Warning",
"Microsoft.AspNetCore.Mvc.Internal": "Information",
"Microsoft.AspNetCore.Authentication": "Information"
}
}
答案 0 :(得分:1)
Azure监视器提供了一种简单的方法来为ASP.NET Core配置LogLevel。可以在配置中(通常通过使用appsettings.json
文件)或在代码中完成过滤。
以下示例由官方文档Create filter rules in configuration with appsettings.json提供。
{
"Logging": {
"ApplicationInsights": {
"LogLevel": {
"Default": "Warning",
"Microsoft": "Error"
}
},
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
更新:对于asp .net,我发现ApplicationInsights.config可以指定遥测模块级别。以下是有关EventSource events的示例。
<Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
<Sources>
<Add Name="MyCompany" Level="Verbose" />
</Sources>
</Add>