how about using the FakeLogger?
https://learn.microsoft.com/en-nz/dotnet/api/microsoft.extensions.logging.testing.fakelogger
https://devblogs.microsoft.com/dotnet/fake-it-til-you-make-it-to-production/
using Microsoft.Extensions.Logging.Testing;
public class Tests
{
private readonly FakeLogger<GetImageByPropertyCode> _fakeLogger = new();
[Fact]
public void Test()
{
_fakeLogger.Collector
.GetSnapshot()
.Count(l => l.Message.StartsWith("whatevs"))
.Should().Be(1);
}