using Microsoft.Extensions.Logging; using System; using Xunit.Abstractions; namespace k8s.Tests.Logging { /// /// Logger provider for logging to Xunit test output. /// sealed class TestOutputLoggerProvider : ILoggerProvider { /// /// 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. /// 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); } }