< Summary

Information
Class: ArturRios.Logging.Adapter.MicrosoftLoggerBuilderExtensions
Assembly: ArturRios.Logging
File(s): /home/ci/agent/workspace/dotnet-logging-docs_main/app/src/Adapter/MicrosoftLoggerBuilderExtensions.cs
Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 27
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 1
Fully covered methods: 1
Total methods: 1
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddCustomLogger(...)100%11100%

File(s)

/home/ci/agent/workspace/dotnet-logging-docs_main/app/src/Adapter/MicrosoftLoggerBuilderExtensions.cs

#LineLine coverage
 1using Microsoft.Extensions.DependencyInjection;
 2using Microsoft.Extensions.DependencyInjection.Extensions;
 3using Microsoft.Extensions.Logging;
 4
 5namespace ArturRios.Logging.Adapter;
 6
 7/// <summary>
 8/// Extension methods for configuring the custom logger with Microsoft.Extensions.Logging.
 9/// </summary>
 10public static class MicrosoftLoggerBuilderExtensions
 11{
 12    /// <summary>
 13    /// Adds the custom logger provider to the logging builder.
 14    /// </summary>
 15    /// <param name="builder">The logging builder to configure.</param>
 16    /// <returns>The logging builder for method chaining.</returns>
 17    /// <exception cref="ArgumentNullException">Thrown when builder is null.</exception>
 18    public static ILoggingBuilder AddCustomLogger(this ILoggingBuilder builder)
 19    {
 920        ArgumentNullException.ThrowIfNull(builder);
 21
 22        // TryAddEnumerable: a second call must not register a second provider, which would write every entry twice.
 823        builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<ILoggerProvider, MicrosoftLoggerProvider>());
 24
 825        return builder;
 26    }
 27}