XUnitLoggerProvider Class

Provides an implementation of ILoggerProvider that creates loggers writing to xUnit.net's ITestOutputHelper.

public sealed class XUnitLoggerProvider : ILoggerProvider, ISupportExternalScope, IDisposable

Example

var testOutputHelper = TestContext.Current.TestOutputHelper;
using var provider = new XUnitLoggerProvider(testOutputHelper);
using var host = new HostBuilder()
    .ConfigureLogging(builder =>
    {
        builder.Services.AddSingleton<ILoggerProvider>(provider);
    })
    .Build();

var logger = host.Services.GetRequiredService<ILoggerFactory>().CreateLogger("MyCategory");
logger.LogInformation("This message will appear in the test output");
Implements

Constructors

NameDescription
XUnitLoggerProvider()Initializes a new instance of the XUnitLoggerProvider class.
XUnitLoggerProvider(XUnitLoggerOptions?)Initializes a new instance of the XUnitLoggerProvider class with the specified options.
XUnitLoggerProvider(ITestOutputHelper?)Initializes a new instance of the XUnitLoggerProvider class with the specified test output helper.
XUnitLoggerProvider(ITestOutputHelper?, XUnitLoggerOptions?)Initializes a new instance of the XUnitLoggerProvider class with the specified test output helper and options.
XUnitLoggerProvider(ITestOutputHelper?, bool)Initializes a new instance of the XUnitLoggerProvider class with the specified test output helper and scope behavior.

XUnitLoggerProvider overloads

XUnitLoggerProvider()

XUnitLoggerProvider.cs

Initializes a new instance of the XUnitLoggerProvider class.

public XUnitLoggerProvider()

XUnitLoggerProvider(XUnitLoggerOptions?)

XUnitLoggerProvider.cs

Initializes a new instance of the XUnitLoggerProvider class with the specified options.

public XUnitLoggerProvider(XUnitLoggerOptions? options)
Parameters
options XUnitLoggerOptions?
The logger options.

XUnitLoggerProvider(ITestOutputHelper?)

XUnitLoggerProvider.cs

Initializes a new instance of the XUnitLoggerProvider class with the specified test output helper.

public XUnitLoggerProvider(ITestOutputHelper? testOutputHelper)
Parameters
testOutputHelper ITestOutputHelper?
The xUnit.net test output helper.

XUnitLoggerProvider(ITestOutputHelper?, XUnitLoggerOptions?)

XUnitLoggerProvider.cs

Initializes a new instance of the XUnitLoggerProvider class with the specified test output helper and options.

public XUnitLoggerProvider(ITestOutputHelper? testOutputHelper, XUnitLoggerOptions? options)
Parameters
testOutputHelper ITestOutputHelper?
The xUnit.net test output helper.
options XUnitLoggerOptions?
The logger options.

XUnitLoggerProvider(ITestOutputHelper?, bool)

XUnitLoggerProvider.cs

Initializes a new instance of the XUnitLoggerProvider class with the specified test output helper and scope behavior.

public XUnitLoggerProvider(ITestOutputHelper? testOutputHelper, bool appendScope)
Parameters
testOutputHelper ITestOutputHelper?
The xUnit.net test output helper.
appendScope bool
Whether to include scopes when logging.

Methods

NameDescription
CreateLogger(string)Creates a new ILogger instance.
Dispose()Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
SetScopeProvider(IExternalScopeProvider)Sets the external scope provider supplied by the logger factory.

CreateLogger(string)

XUnitLoggerProvider.cs

Creates a new ILogger instance.

public ILogger CreateLogger(string categoryName)

Parameters

categoryName string
The category name for messages produced by the logger.

Returns

ILogger The instance of ILogger that was created.

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

SetScopeProvider(IExternalScopeProvider)

XUnitLoggerProvider.cs

Sets the external scope provider supplied by the logger factory.

public void SetScopeProvider(IExternalScopeProvider scopeProvider)

Parameters

scopeProvider IExternalScopeProvider
The scope provider the factory uses to track scopes.

Remarks

Implementing ISupportExternalScope is what makes the factory route its scopes through this provider, including the ones it synthesises from the current activity when LoggerFactoryOptions.ActivityTrackingOptions is set.