using Microsoft.Extensions.Logging; using System; using Xunit.Abstractions; namespace k8s.Tests.Logging { /// /// Logger provider for logging to Xunit test output. /// internal sealed class TestOutputLoggerProvider : ILoggerProvider { /// /// Initializes a new instance of the class. /// Create a new . /// /// /// The output for the current test. /// /// /// The logger's minimum log level. /// public TestOutputLoggerProvider(ITestOutputHelper testOutput, LogLevel minLogLevel) { if (testOutput == null) { throw new ArgumentNullException(nameof(testOutput)); } TestOutput = testOutput; MinLogLevel = minLogLevel; } /// /// Dispose of resources being used by the logger provider. /// public void Dispose() { } /// /// The output for the current test. /// private ITestOutputHelper TestOutput { get; } /// /// The logger's minimum log level. /// public LogLevel MinLogLevel { get; } /// /// Create a new logger. /// /// /// The logger category name. /// /// /// The logger, as an . /// public ILogger CreateLogger(string categoryName) => new TestOutputLogger(TestOutput, categoryName, MinLogLevel); } }