You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/tests/Recyclarr.TestLibrary/TestableLogger.cs

31 lines
777 B

using System.Globalization;
using Serilog.Core;
using Serilog.Events;
namespace Recyclarr.TestLibrary;
[UsedImplicitly]
public sealed class TestableLogger : ILogger
{
private readonly Logger _log;
private readonly List<string> _messages = [];
public TestableLogger()
{
_log = new LoggerConfiguration()
.MinimumLevel.Is(LogEventLevel.Verbose)
.WriteTo.Observers(o =>
o.Subscribe(x => _messages.Add(x.RenderMessage(CultureInfo.InvariantCulture)))
)
.WriteTo.Console(formatProvider: CultureInfo.InvariantCulture)
.CreateLogger();
}
public void Write(LogEvent logEvent)
{
_log.Write(logEvent);
}
public IEnumerable<string> Messages => _messages;
}