我已经启用了登录运行在azure Web服务上的Web应用程序的功能,如果启用了日志流,则可以看到日志输出,但是找不到可以在其中找到日志的GUI,所以它们在哪里?
我已经在program.cs中定义了自己的日志记录
WebHost.CreateDefaultBuilder(args)
.UseApplicationInsights()
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
logging.AddEventSourceLogger();
logging.AddApplicationInsights();
})
.UseStartup<Startup>();
在我的API控制器中,我只是在做
private readonly ILogger _logger;
public ReveController(ILogger<Controller> logger)
{
_logger = logger;
}
之后
_logger.LogInformation("Test test test");
我在appsettings.json中的日志记录设置如下
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
我查看了应用服务和App Insights,但在GUI的任何地方都找不到我的条目?
我想念什么吗?
答案 0 :(得分:2)
使用Ilogger
界面编写的日志最终成为应用程序见解中的跟踪。您可以使用Search in Application Insights或Log Analytics来查看它们。
App Insights的故障日志级别设置为Warning
,每个appsettings.json的其他目标的日志级别也设置为。您可以更改它以匹配您的代码,以便记录所有严重性信息或更高级别的信息:
使用AddFilter
(Source)在代码中:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureLogging(
builder =>
{
// Providing an instrumentation key here is required if you're using
// standalone package Microsoft.Extensions.Logging.ApplicationInsights
// or if you want to capture logs from early in the application startup
// pipeline from Startup.cs or Program.cs itself.
builder.AddApplicationInsights();
// Optional: Apply filters to control what logs are sent to Application Insights.
// The following configures LogLevel Information or above to be sent to
// Application Insights for all categories.
builder.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>
("", LogLevel.Information);
}
);
或在配置文件中,通过在“日志记录”部分(Source)的“ ApplicationInsights”部分中设置LogLevel:
{
"Logging": {
"ApplicationInsights": {
"LogLevel": {
"Default": "Information",
}
},
"LogLevel": {
"Default": "Information"
}
},
}
顺便,请注意以下事项:
默认项目模板调用CreateDefaultBuilder,它将添加以下日志记录提供程序:
- 控制台
- 调试
- EventSource(从ASP.NET Core 2.2开始)
因此您不必像现在那样在代码中执行此操作。它还将读取配置。 (Source)
更多信息
请参阅this issue,以获取有关默认日志级别为Warning
的讨论,以及为什么没有appsettings.json中的ApplicationInsights
部分不能在配置中覆盖它的原因。
详细了解日志级别here
详细了解过滤器(包括用于日志级别的过滤器)here
答案 1 :(得分:1)
您已将默认日志级别设置为Warning
,但日志级别为Information
。这将阻止Application Insights接收日志输出。