我已经在应用程序中启用了应用程序洞察力记录。从其他地方,如控制器,其他类,我可以使用记录器和数据被发送到应用洞察力,但在启动时,我试图将数据发送到人工智能,但它没有推动数据到人工智能。我没有收到任何错误,实例是创建的,但数据没有被推送到AI。这是我的创业公司
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
"Logging": {
"ApplicationInsights": {
"LogLevel": {
"Default": "Information"
}
},
"logLevel": { "default": "Information" }
}发布于 2020-01-28 13:43:43
在使用通用主机(IHostBuilder)时,只能将下列服务类型注入启动构造函数:
..。在调用Configure方法之前,大多数服务都不可用。
由于您实际上是在Startup本身内注册记录器,所以在类实例化时它还没有准备好。
考虑将记录器注册移出,以便在初始化Startup时它就在那里。
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中,所需的日志记录行为现在应该可用了。
public class Startup {
private readonly ILogger _logger;
public Startup(ILogger<Startup> logger) {
_logger = logger;
}
public void ConfigureServices(IServiceCollection services) {
_logger.LogError("something");
}
}https://stackoverflow.com/questions/59948590
复制相似问题