Я имел в виду, что в текущем SDK они только для TraceTelemetry. Возможность запуска ExceptionTelemetry будет доступна в следующих выпусках SDK.
аюсь зарегистрировать исключения в Application Insights. Мне удалось это сделать, позвонивTelemetryClient.TrackException
непосредственно. Тем не менее, я хотел бы абстрагироваться от этого в своем коде на случай, если в будущем я захочу войти на другие платформы, поэтому я хотел бы придерживаться только интерфейса ILogger.
Я обнаружил, что вы можете использоватьILoggerFactory.AddApplicationInsights
(как реализованоВот) но независимо от того, что я сделал, я не вижу журналы, отображаемые в ApplicationInsights с этим.
Ниже мой код:
Startup.cs
IConfigurationRoot Configuration { get; set; }
ILoggerFactory LoggerFactory { get; set; }
IServiceProvider ServiceProvider { get; set; }
public Startup( IHostingEnvironment hostingEnvironment, ILoggerFactory loggerFactory )
{
this.LoggerFactory = loggerFactory;
string configurationFilePath = "abc.json";
this.Configuration = new ConfigurationBuilder()
.SetBasePath( hostingEnvironment.ContentRootPath )
.AddJsonFile( configurationFilePath, optional: true, reloadOnChange: true )
.AddEnvironmentVariables()
.Build();
}
public void Configure(
IApplicationBuilder applicationBuilder,
IHostingEnvironment hostingEnvironment,
ILoggerFactory loggerFactory,
IServiceProvider serviceProvider )
{
this.ServiceProvider = serviceProvider;
loggerFactory.AddApplicationInsights( serviceProvider );
applicationBuilder.UseMvc();
}
public void ConfigureServices( IServiceCollection services )
{
services.AddApplicationInsightsTelemetry( this.Configuration );
services.AddMvc( .... // A bunch of options here ... )
}
Затем я пытаюсь использовать это в моем контроллере следующим образом:
ILogger<XController> Logger { get; set; }
public XController( ILogger<XController> logger )
{
this.Logger = logger;
}
[HttpPost]
[Route( "v3.0/abcd" )]
public async Task PostEvent( [FromBody] XEvent xEvent )
{
this.Logger.LogError( 0, new Exception( "1234" ), "1234" );
}
Однако я не вижу никаких исключений, связанных с запросом. Если я заменюLogger.LogError
линия сTelemetryClient.TrackException
(и создатьTelemetryClient
сначала), потом я могу видеть исключение без каких-либо проблем.
Я не знаю, что я делаю не так. Может ли кто-нибудь помочь?