Logging
public abstract class LoggerProvider : IDisposable,
ILoggerProvider, ISupportExternalScope
{
...
public IExternalScopeProvider ScopeProvider { get; }
/// <summary>
/// Writes the specified log information to a log file.
/// </summary>
public abstract void WriteLog<TState>(LogEntry<TState> entry, string formattedMessage);
#region IDisposable Support
/// <summary>
/// Cleanup resources on disposing.
/// </summary>
protected abstract void Cleanup();
...
#endregion
}
Once you have an implementation, you can register it when you add logging:
services.AddLogging(builder =>
{
builder.ClearProviders(); // optional
builder.AddConfiguration();
// configure your options if needed
// register service
builder.Services.TryAddEnumerable(
ServiceDescriptor.Singleton<ILoggerProvider, YourLoggerProvider>());
});
Or register to existing application logging builder:
var builder = WebApplication.CreateBuilder(args);
// configure your options if needed
// register service
builder.Logging.Services.TryAddEnumerable(
ServiceDescriptor.Singleton<ILoggerProvider, YourLoggerProvider>());
See Logging extensions XUnit output logging for example.
The library can be accessed via Nuget: