< Summary

Information
Class: Api.ServiceExtension.LoggingCollectionExtensions
Assembly: Api
File(s): /home/runner/work/Northwind-Api/Northwind-Api/src/Api/ServiceExtension/Logging.cs
Line coverage
31%
Covered lines: 11
Uncovered lines: 24
Coverable lines: 35
Total lines: 49
Line coverage: 31.4%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddLoggerWithSeq(...)100%210%
AddDefaultLogger(...)100%11100%

File(s)

/home/runner/work/Northwind-Api/Northwind-Api/src/Api/ServiceExtension/Logging.cs

#LineLine coverage
 1using OpenTelemetry.Logs;
 2using Serilog;
 3using Serilog.Sinks.OpenTelemetry;
 4
 5namespace Api.ServiceExtension;
 6public static class LoggingCollectionExtensions {
 07  public static IServiceCollection AddLoggerWithSeq(this IServiceCollection services, IConfiguration configuration) {
 8
 09    Log.Logger = new LoggerConfiguration()
 010           .Enrich.FromLogContext()
 011           .MinimumLevel.Information()
 012           .WriteTo.Console()
 013           .WriteTo.OpenTelemetry(otlp => {
 014             otlp.Endpoint = "http://seq:80/ingest/otlp/v1/logs";
 015             otlp.Protocol = OtlpProtocol.HttpProtobuf;
 016             otlp.Headers = new Dictionary<string, string> {
 017               ["X-Seq-ApiKey"] = "INSERT_KEY"
 018             };
 019             otlp.ResourceAttributes = new Dictionary<string, object> {
 020               ["service.name"] = "Northwind-Api"
 021             };
 022           })
 023           .ReadFrom.Configuration(configuration)
 024           .CreateLogger();
 25
 026    services.AddLogging(logging => {
 027      logging.ClearProviders();
 028      logging.AddSerilog(Log.Logger, dispose: true);
 029      logging.AddOpenTelemetry(x => x.AddOtlpExporter());
 030    });
 31
 032    return services;
 033  }
 34
 135  public static IServiceCollection AddDefaultLogger(this IServiceCollection services, IConfiguration configuration) {
 36
 137    Log.Logger = new LoggerConfiguration()
 138    .ReadFrom.Configuration(configuration)
 139    .Enrich.FromLogContext()
 140    .CreateLogger();
 41
 242    services.AddLogging(logging => {
 143      logging.ClearProviders();
 144      logging.AddSerilog(Log.Logger, dispose: true);
 245    });
 146    return services;
 147  }
 48
 49}