我正在尝试在控制台应用程序中启用 Application Insights IHostedService
(目前,它是一个简单的控制台应用程序,我们作为 WebJob 运行,将来在容器中运行)。
据我所知,在以下代码中,到目前为止,我们没有任何扩展来将全局 Application Insights 注册为以下代码的实现ILogger
:
public static class Program
{
public static Task Main(string[] args)
{
var hostBuilder = new HostBuilder()
.ConfigureHostConfiguration(config =>
{
config.SetBasePath(Directory.GetCurrentDirectory());
config.AddJsonFile("appsettings.json", optional: false);
config.AddEnvironmentVariables();
})
.ConfigureLogging((context, logging) =>
{
logging.AddConfiguration(context.Configuration.GetSection("Logging"));
if (context.HostingEnvironment.IsDevelopment())
{
logging.AddConsole();
}
else
{
//TODO: register ApplicationInsights
}
});
return hostBuilder.RunConsoleAsync();
}
}
到目前为止,我发现可能我应该能够使用记录器的自定义实现来设置所有内容,即public class ApplicationInsightsLogger : ILogger
,然后...将它注册到容器中,以便 DI 解决它。
这是正确的方向吗?