XUnitLoggerProvider Class
Provides an implementation of ILoggerProvider that creates loggers writing to xUnit.net's ITestOutputHelper.
public sealed class XUnitLoggerProvider : ILoggerProvider, ISupportExternalScope, IDisposableExample
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");Constructors
| Name | Description |
|---|---|
| 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.csInitializes a new instance of the XUnitLoggerProvider class.
public XUnitLoggerProvider()XUnitLoggerProvider(XUnitLoggerOptions?)
XUnitLoggerProvider.csInitializes a new instance of the XUnitLoggerProvider class with the specified options.
public XUnitLoggerProvider(XUnitLoggerOptions? options)Parameters
optionsXUnitLoggerOptions?- The logger options.
XUnitLoggerProvider(ITestOutputHelper?)
XUnitLoggerProvider.csInitializes a new instance of the XUnitLoggerProvider class with the specified test output helper.
public XUnitLoggerProvider(ITestOutputHelper? testOutputHelper)Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
XUnitLoggerProvider(ITestOutputHelper?, XUnitLoggerOptions?)
XUnitLoggerProvider.csInitializes a new instance of the XUnitLoggerProvider class with the specified test output helper and options.
public XUnitLoggerProvider(ITestOutputHelper? testOutputHelper, XUnitLoggerOptions? options)Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
optionsXUnitLoggerOptions?- The logger options.
XUnitLoggerProvider(ITestOutputHelper?, bool)
XUnitLoggerProvider.csInitializes a new instance of the XUnitLoggerProvider class with the specified test output helper and scope behavior.
public XUnitLoggerProvider(ITestOutputHelper? testOutputHelper, bool appendScope)Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
appendScopebool- Whether to include scopes when logging.
Methods
| Name | Description |
|---|---|
| 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.csDispose()
XUnitLoggerProvider.csPerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()SetScopeProvider(IExternalScopeProvider)
XUnitLoggerProvider.csSets the external scope provider supplied by the logger factory.
public void SetScopeProvider(IExternalScopeProvider scopeProvider)Parameters
scopeProviderIExternalScopeProvider- 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.