Logging

Wired.IO implements ILoggingFactory with its default parameters

    private static void DefaultLoggingBuilder(ILoggingBuilder loggingBuilder)
    {
        loggingBuilder
            .ClearProviders()
#if DEBUG
            .SetMinimumLevel(LogLevel.Debug)
#else
            .SetMinimumLevel(LogLevel.Information)
#endif
            .AddConsole();
    }

If you want to override this ILoggingFactory, register yours with your logging builder configuration (Microsoft.Extensions.Logging).

( ... )
builder.Services
    .AddLogging(loggingBuilder =>
    {
        // Configure ILoggingBuilder
    })
( ... )

Check official docs at ILoggingBuilder docs to explore configurability.

Inject an ILogger

Resolve a ILogger<> anywhere.

For fast endpoints and middleware resolve directly from scope.

// Replace Program with your TCategoryName
var logger = scope.GetRequiredService<ILogger<Program>();

Anyhwere else, resolve from constructor.

// For example in a IRequestHandler
public class RequestHandlerExample(ILogger<RequestHandlerExample> logger) 
    : IRequestHandler<RequestQuery, RequestResult>
{
    public async Task<RequestResult> Handle(RequestQuery request, CancellationToken cancellationToken)
    {
        logger.LogInformation($"{nameof(RequestHandlerExample)} was handled.");

        ( ... )
    }
}