Logging
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.");
( ... )
}
}