XUnitLogger Class
Provides an implementation of ILogger that writes logs to xUnit.net's ITestOutputHelper.
public class XUnitLogger : ILoggerExample
public sealed class MyTests(ITestOutputHelper testOutputHelper)
{
[Fact]
public void MyTest()
{
var logger = XUnitLogger.CreateLogger(testOutputHelper);
logger.LogInformation("This message will appear in the test output");
}
}- Implements
Constructors
| Name | Description |
|---|---|
| XUnitLogger(ITestOutputHelper?, IExternalScopeProvider, string?, XUnitLoggerOptions?) | Initializes a new instance of the XUnitLogger class. |
| XUnitLogger(ITestOutputHelper?, LoggerExternalScopeProvider, string?) | Initializes a new instance of the XUnitLogger class. |
| XUnitLogger(ITestOutputHelper?, LoggerExternalScopeProvider, string?, XUnitLoggerOptions?) | Initializes a new instance of the XUnitLogger class. |
| XUnitLogger(ITestOutputHelper?, LoggerExternalScopeProvider, string?, bool) | Initializes a new instance of the XUnitLogger class. |
XUnitLogger overloads
XUnitLogger(ITestOutputHelper?, IExternalScopeProvider, string?, XUnitLoggerOptions?)
XUnitLogger.csInitializes a new instance of the XUnitLogger class.
public XUnitLogger(ITestOutputHelper? testOutputHelper, IExternalScopeProvider scopeProvider, string? categoryName, XUnitLoggerOptions? options)Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
scopeProviderIExternalScopeProvider- The scope provider.
categoryNamestring?- The category name for messages produced by the logger.
optionsXUnitLoggerOptions?- The logger options.
XUnitLogger(ITestOutputHelper?, LoggerExternalScopeProvider, string?)
XUnitLogger.csInitializes a new instance of the XUnitLogger class.
public XUnitLogger(ITestOutputHelper? testOutputHelper, LoggerExternalScopeProvider scopeProvider, string? categoryName)Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
scopeProviderLoggerExternalScopeProvider- The scope provider.
categoryNamestring?- The category name for messages produced by the logger.
Remarks
Scopes are not appended to the messages. Use the overload taking XUnitLoggerOptions to change it.
XUnitLogger(ITestOutputHelper?, LoggerExternalScopeProvider, string?, XUnitLoggerOptions?)
XUnitLogger.csInitializes a new instance of the XUnitLogger class.
public XUnitLogger(ITestOutputHelper? testOutputHelper, LoggerExternalScopeProvider scopeProvider, string? categoryName, XUnitLoggerOptions? options)Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
scopeProviderLoggerExternalScopeProvider- The scope provider.
categoryNamestring?- The category name for messages produced by the logger.
optionsXUnitLoggerOptions?- The logger options.
XUnitLogger(ITestOutputHelper?, LoggerExternalScopeProvider, string?, bool)
XUnitLogger.csInitializes a new instance of the XUnitLogger class.
public XUnitLogger(ITestOutputHelper? testOutputHelper, LoggerExternalScopeProvider scopeProvider, string? categoryName, bool appendScope)Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
scopeProviderLoggerExternalScopeProvider- The scope provider.
categoryNamestring?- The category name for messages produced by the logger.
appendScopebool- Whether to include scopes when logging.
Methods
| Name | Description |
|---|---|
| BeginScope<TState>(TState) | Begins a logical operation scope. |
| CreateLogger() | Creates a new logger instance without a test output helper. |
| CreateLogger(ITestOutputHelper?) | Creates a new logger instance with the specified test output helper. |
| CreateLogger(ITestOutputHelper?, XUnitLoggerOptions?) | Creates a new logger instance with the specified test output helper. |
| CreateLogger<T>() | Creates a new typed logger instance without a test output helper. |
| CreateLogger<T>(ITestOutputHelper?) | Creates a new typed logger instance with the specified test output helper. |
| CreateLogger<T>(ITestOutputHelper?, XUnitLoggerOptions?) | Creates a new typed logger instance with the specified test output helper. |
| IsEnabled(LogLevel) | Checks if the given logLevel is enabled. |
| Log<TState>(LogLevel, EventId, TState, Exception?, Func<TState, Exception?, string>) | Writes a log entry. |
BeginScope<TState>(TState)
XUnitLogger.csBegins a logical operation scope.
public IDisposable? BeginScope<TState>(TState state) where TState : notnullType parameters
TState- The type of the state to begin scope for.
Parameters
stateTState- The identifier for the scope.
Returns
IDisposable? An IDisposable that ends the logical operation scope on dispose.
CreateLogger overloads
CreateLogger()
XUnitLogger.csCreateLogger(ITestOutputHelper?)
XUnitLogger.csCreateLogger(ITestOutputHelper?, XUnitLoggerOptions?)
XUnitLogger.csCreates a new logger instance with the specified test output helper.
public static ILogger CreateLogger(ITestOutputHelper? testOutputHelper, XUnitLoggerOptions? options)Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
optionsXUnitLoggerOptions?- The logger options.
Returns
CreateLogger<T>()
XUnitLogger.csCreates a new typed logger instance without a test output helper.
public static ILogger<T> CreateLogger<T>()Type parameters
T- The type whose name is used for the logger category.
Returns
ILogger<T> A new ILogger<TCategoryName> instance.
CreateLogger<T>(ITestOutputHelper?)
XUnitLogger.csCreates a new typed logger instance with the specified test output helper.
public static ILogger<T> CreateLogger<T>(ITestOutputHelper? testOutputHelper)Type parameters
T- The type whose name is used for the logger category.
Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
Returns
ILogger<T> A new ILogger<TCategoryName> instance.
CreateLogger<T>(ITestOutputHelper?, XUnitLoggerOptions?)
XUnitLogger.csCreates a new typed logger instance with the specified test output helper.
public static ILogger<T> CreateLogger<T>(ITestOutputHelper? testOutputHelper, XUnitLoggerOptions? options)Type parameters
T- The type whose name is used for the logger category.
Parameters
testOutputHelperITestOutputHelper?- The xUnit.net test output helper.
optionsXUnitLoggerOptions?- The logger options [optional].
Returns
ILogger<T> A new ILogger<TCategoryName> instance.
IsEnabled(LogLevel)
XUnitLogger.csLog<TState>(LogLevel, EventId, TState, Exception?, Func<TState, Exception?, string>)
XUnitLogger.csWrites a log entry.
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception?, string> formatter)Type parameters
TState- The type of the object to be written.
Parameters
logLevelLogLevel- Entry will be written on this level.
eventIdEventId- Id of the event.
stateTState- The entry to be written. Can be also an object.
exceptionException?- The exception related to this entry.
formatterFunc<TState, Exception?, string>- Function to create a
Stringmessage of thestateandexception.