在ASP.NET Core应用程序中,我已配置ILoggerFactory
实例以在Application Insights中输出日志:
public class Startup
{
...
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(LogLevel.Debug);
loggerFactory.AddDebug();
// By default, set the minimum severity level to Information.
loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information);
// ...
}
}
稍后,someClass
被注入ILoggerFactory
实例,并且正在记录调试消息:
public class SomeClass
{
private ILogger _logger;
public SomeClass(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger(nameof(SomeClass));
}
public void Do()
{
_logger.LogDebug($"Some debug message");
}
}
Application Insights与ASP.NET Core应用分开配置,而不是作为扩展。
由于我已将Application Insights配置为仅记录严重性高于或等于参考消息的消息,所以看不到“调试”跟踪。
问题
是否有一种方法可以从Azure门户更改最低日志记录级别以进行故障排除,而不必重新编译应用程序?
答案 0 :(得分:0)
尝试修改appsettings.json-专门添加ApplicationInsights部分并调整日志级别。
"Logging": {
"IncludeScopes": false,
"ApplicationInsights": {
"LogLevel": {
"Default": "None"
}
},
"LogLevel": {
"Default": "Warning"
}
}
如果您的应用程序没有应用程序见解,但从Web Apps安装了应用程序见解扩展,则应该可以。
由于您已经在代码中引用并设置了日志级别,所以我不确定100%是否可以使用:(
答案 1 :(得分:0)
这是不可能的,因为您已经在代码中定义了:loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information);
您可以将想法发布在feedback中。