namespace BrokerTest.Helper; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using Xunit.Abstractions; public class TestLogger : ILogger, IDisposable { private readonly List m_logs = []; private readonly ITestOutputHelper m_output; public TestLogger(ITestOutputHelper output) { m_output = output; } public IDisposable? BeginScope(TState state) where TState : notnull { return null; } public bool IsEnabled(LogLevel logLevel) => true; public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) { var message = formatter(state, exception); m_logs.Add(message); m_output.WriteLine(message); } public IEnumerable Logs => m_logs; public void Dispose() => m_logs.Clear(); }