当前位置: 首页 > 知识库问答 >
问题:

应用程序洞察不存储iLogger消息

丰岳
2023-03-14

我有一个使用应用程序洞察的.NET5Web应用程序。我尝试使用ilogger<>登录AI trace。然而:当分析Azure上AI中的“痕迹”内容时,日志并不显示。

启动部分:

services.AddLogging(loggingbuilder =>
  {
    loggingbuilder.AddFilter<ApplicationInsightsLoggerProvider>("", LogLevel.Trace);
    loggingbuilder.AddApplicationInsights();
  });
services.AddApplicationInsightsTelemetry();          

应该进行日志记录的类的构造函数通过依赖注入来注入ILogger和AppInsights:

public ImportService(ILogger<ImportService> log, TelemetryClient telemetryClient)
  {
    _log = log;
    _telemetryClient = telemetryClient;
  }

在该方法中,我有以下两个日志记录尝试:

public async Task<Customer> UpdateCustomerByEmail(string email)
{
  _telemetryClient.TrackTrace("From Telemetry");
  _log.LogWarning("From Log");
  [...]
}

instrumentationkey存储在appsettings中(显然正确,因为telemetryClient-Track正在工作)

共有1个答案

马俊
2023-03-14

这份文件可能与你有关吗?向program.cs中添加以下代码对我起作用:

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddApplicationInsights("<instrumentationKeyHere>");
                logging.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>("", LogLevel.Information);
            })
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });

还必须安装nuget包Microsoft.Extensions.Logging.ApplicationInsights。

在您的情况下,只需提供检测键作为AddApplicationInsights函数的参数就足够了。

如文档中所述:“仅当您使用独立日志记录提供程序时才需要此代码。对于常规应用程序洞察监视,检测密钥将从配置路径ApplicationInsights:InstrumentationKey自动加载。”

这可能解释了为什么定期监控有效,但不适合日志记录。

 类似资料:
  • 唯一可以解决这一问题的方法是在startup.configure()中添加下面一行代码: 上面的解决方案是不可取的,因为我们希望根据环境不同地配置日志级别,因此基于配置的解决方案将是首选的。此外,我猜测问题是配置相关的,因为它在本地运行良好。在Azure中没有特殊的配置。 下面是整个startup.configure():

  • 我正在设置一个新的web应用程序,通过Application Insights登录。我已经安装了AI,并且看到了所有预期的遥测(服务器请求、失败的请求等),但没有通过ILogger发送日志。我已经看过所有类似的问题,我可以找到这样,但没有解决我的问题。 我正在使用。NET 5和2.17版。Microsoft的0(最新版本)。应用程序指示灯。AspNetCore-nuget包。连接字符串和检测键显示

  • 有没有什么简单的方法可以找到哪些应用程序正在使用azure Portal的特定应用程序洞察? 我已经检查了门户中的各种选项,但没有找到任何易于理解的界面,我可以在其中找到正在向特定应用程序Insights发送数据的应用程序列表。

  • 我们为Azure Portal中托管的Web应用程序安装了应用程序Insights。

  • 我正在尝试配置我的azure ASP.NET网站,以便将log4net跟踪发送到azure Application Insights。我可以看到在我的azure控制台页面视图等,因此我知道这是工作良好的。当配置了文件处理程序时,我还可以看到log4net跟踪,但是当配置log4net以使用application insights处理程序时,我没有看到任何log4net条目出现在applicatio

  • 有人能解释一下在使用Azure Function V2(.NET核心)时,如何强制ILogger实际将一些东西登录到应用程序insights中吗? 我们配置了应用程序洞察力,它显示了实时远程和未处理的异常。我们正在尝试的工作是强制应用程序insights存储我们通过默认的iLogger创建的日志。 无论我们使用哪种类型的日志级别(信息、警告、错误、关键)--应用程序洞察中没有存储任何东西。 更多信