public static IHostBuilder CreateHostBuilder() => new HostBuilder() .ConfigureLogging(builder => builder.ClearProviders()) .ConfigureServices(services => { // We don't care much about which options we are setting. // These are for testing that all the extension method overloads work as expected. services.AddGoogleDiagnostics( new TraceServiceOptions { ProjectId = ProjectId, Options = TraceOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)) }, new LoggingServiceOptions { ProjectId = ProjectId, ServiceName = Service, Version = Version, Options = LoggingOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)) }, new ErrorReportingServiceOptions { ProjectId = ProjectId, ServiceName = Service, Version = Version, Options = ErrorReportingOptions.CreateInstance(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)) }); });
public async Task LogAsync() { var eventTarget = EventTarget.ForProject("pid"); var options = ErrorReportingOptions.CreateInstance(); var consumer = new FakeConsumer(); IContextExceptionLogger logger = new ErrorReportingContextExceptionLogger( consumer, eventTarget, _serviceContext, options, null); await logger.LogAsync(CreateException(), new FakeContextWrapper()); ValidateSingleEntry(consumer, _method, _uri, _userAgent, options, eventTarget); }
public void Log_Simple() { var eventTarget = EventTarget.ForProject("pid"); var options = ErrorReportingOptions.CreateInstance(); var consumer = new FakeConsumer(); IContextExceptionLogger logger = new ErrorReportingContextExceptionLogger( consumer, eventTarget, _serviceContext, options, null); logger.Log(CreateException(), new EmptyContextWrapper()); ValidateSingleEntry(consumer, "", "", "", options, eventTarget); }
// Sample: ConfigureBuffers public static IHostBuilder CreateHostBuilder() => new HostBuilder() .ConfigureServices(services => { // Replace ProjectId with your Google Cloud Project ID. // Replace Service with a name or identifier for the service. // Replace Version with a version for the service. services.AddGoogleDiagnostics(ProjectId, Service, Version, // Configure the three components to use no buffer. traceOptions: TraceOptions.Create(bufferOptions: BufferOptions.NoBuffer()), loggingOptions: LoggingOptions.Create(bufferOptions: BufferOptions.NoBuffer()), errorReportingOptions: ErrorReportingOptions.CreateInstance(bufferOptions: BufferOptions.NoBuffer())); // Register other services here if you need them. });
public override void ConfigureServices(IServiceCollection services) => base.ConfigureServices(services .AddGoogleErrorReportingForAspNetCore(new Common.ErrorReportingServiceOptions { ProjectId = ProjectId, ServiceName = EntryData.Service, Version = EntryData.Version, Client = new LoggingServiceV2ClientBuilder { TokenAccessMethod = (uri, cancellation) => Task.FromResult("very_bad_token") }.Build(), // This is just so that our validator finds the log entries associated to errors. Options = ErrorReportingOptions.CreateInstance( logName: "aspnetcore", bufferOptions: BufferOptions.NoBuffer(), retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)) }));
public override void ConfigureServices(IServiceCollection services) => base.ConfigureServices(services .AddGoogleTraceForAspNetCore(new AspNetCoreTraceOptions { ServiceOptions = new Common.TraceServiceOptions { ProjectId = ProjectId, Options = TraceOptions.Create( double.PositiveInfinity, BufferOptions.NoBuffer(), RetryOptions.NoRetry(ExceptionHandling.Propagate)) } }) .AddGoogleErrorReportingForAspNetCore(new Common.ErrorReportingServiceOptions { ProjectId = ProjectId, ServiceName = EntryData.Service, Version = EntryData.Version, // This is just so that our validator finds the log entries associated to errors. Options = ErrorReportingOptions.CreateInstance( logName: "aspnetcore", bufferOptions: BufferOptions.NoBuffer(), retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)) }));
public async Task UseGoogleDiagnostics_ValidateDependencyInjection() { var testId = IdGenerator.FromDateTime(); var startTime = DateTime.UtcNow; var hostBuilder = GetHostBuilder(webHostBuilder => webHostBuilder .UseDefaultServiceProvider(options => options.ValidateScopes = true) .ConfigureServices(services => services.AddGoogleDiagnosticsForAspNetCore( TestEnvironment.GetTestProjectId(), EntryData.Service, EntryData.Version, traceOptions: TraceOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)), loggingOptions: LoggingOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)), errorReportingOptions: ErrorReportingOptions.CreateInstance(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))))); using var server = GetTestServer(hostBuilder); using var client = server.CreateClient(); await TestTrace(testId, startTime, client); await TestLogging(testId, startTime, client); await TestErrorReporting(testId, client); }