public async Task LogsExceptionAsync(Func <IHostBuilder> createHostBuilder) { IHost host = null; try { host = createHostBuilder().Build(); await host.StartAsync(); IContextExceptionLogger exceptionLogger = host.Services.GetRequiredService <IContextExceptionLogger>(); try { ThrowsException(); } catch (Exception e) { exceptionLogger.Log(e, null); } var errorEvent = ErrorEventEntryVerifiers.VerifySingle(ErrorEventEntryPolling.Default, _testId); ErrorEventEntryVerifiers.VerifyFullErrorEventLogged( errorEvent, _testId, nameof(ThrowsException), verifyHttpContext: false); } finally { if (host is object) { await host.StopAsync(); } } }
public async Task LogsExceptionAsync() { IHost host = null; // Hides that we use different classes so that we can have multiple CreateHostBuilder methods. Func <IHostBuilder> CreateHostBuilder = DefaultHostBuilder.CreateHostBuilder; try { // Sample: Start host = CreateHostBuilder().Build(); await host.StartAsync(); // End sample // Sample: LogException IContextExceptionLogger exceptionLogger = host.Services.GetRequiredService <IContextExceptionLogger>(); try { // This method call throws an exception. ThrowsException(); } catch (Exception e) { // The logger may receive an IContextWrapper as a second parameter // with information about the HTTP operation, if any, that produced // the error. It may be null in which case it will be ignored. exceptionLogger.Log(e, null); } // End sample var errorEvent = ErrorEventEntryVerifiers.VerifySingle(ErrorEventEntryPolling.Default, _testId); ErrorEventEntryVerifiers.VerifyFullErrorEventLogged( errorEvent, _testId, nameof(ThrowsException), verifyHttpContext: false); } finally { if (host is object) { await host.StopAsync(); } } }
internal GoogleExceptionLogger(IContextExceptionLogger logger) { _logger = GaxPreconditions.CheckNotNull(logger, nameof(logger)); }
internal ErrorReportingExceptionLogger(IContextExceptionLogger logger) { _logger = GaxPreconditions.CheckNotNull(logger, nameof(logger)); }
internal GoogleExceptionLogger( IContextExceptionLogger logger, IHttpContextAccessor accesor) { _logger = GaxPreconditions.CheckNotNull(logger, nameof(logger)); _accesor = GaxPreconditions.CheckNotNull(accesor, nameof(accesor)); }
public StackdriverExceptionHandler(IContextExceptionLogger logger, IHttpContextAccessor httpContextAccessor) { this.logger = logger; httpContextWrapper = new HttpContextWrapper(httpContextAccessor); }