首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动时未从ILogger发送到App的数据

启动时未从ILogger发送到App的数据
EN

Stack Overflow用户
提问于 2020-01-28 12:16:00
回答 1查看 320关注 0票数 1

我已经在应用程序中启用了应用程序洞察力记录。从其他地方,如控制器,其他类,我可以使用记录器和数据被发送到应用洞察力,但在启动时,我试图将数据发送到人工智能,但它没有推动数据到人工智能。我没有收到任何错误,实例是创建的,但数据没有被推送到AI。这是我的创业公司

代码语言:javascript
复制
public class Startup
{
    private readonly ILogger _logger;
    public Startup(ILogger<Startup> logger)
    {
        _logger = logger;
    }

    public void ConfigureServices(IServiceCollection services)
    {

        services.AddLogging(log =>
        {
            log.AddApplicationInsights();
        });
        services.AddApplicationInsightsTelemetry();
        _logger.LogError("something");
    }
}

appsettings.json

代码语言:javascript
复制
"Logging": {
  "ApplicationInsights": {
    "LogLevel": {
      "Default": "Information"
    }
  },
  "logLevel": { "default": "Information" }
}
EN

回答 1

Stack Overflow用户

发布于 2020-01-28 13:43:43

参考ASP.NET内核中的App启动

在使用通用主机(IHostBuilder)时,只能将下列服务类型注入启动构造函数:

  • IWebHostEnvironment
  • IHostEnvironment
  • IConfiguration

..。在调用Configure方法之前,大多数服务都不可用。

由于您实际上是在Startup本身内注册记录器,所以在类实例化时它还没有准备好。

考虑将记录器注册移出,以便在初始化Startup时它就在那里。

代码语言:javascript
复制
public class Program {
    public static void Main(string[] args) {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureServices((context, services) => {
                services.AddApplicationInsightsTelemetry();
            })
            .ConfigureLogging(logging => {
                logging.AddApplicationInsights();
            })
            .ConfigureWebHostDefaults(webBuilder => {
                webBuilder.UseStartup<Startup>(); 
            });
}

Startup中,所需的日志记录行为现在应该可用了。

代码语言:javascript
复制
public class Startup {
    private readonly ILogger _logger;

    public Startup(ILogger<Startup> logger) {
        _logger = logger;
    }

    public void ConfigureServices(IServiceCollection services) {

        _logger.LogError("something");
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59948590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档