SkillAgentSearch skills...

InMemoryLogger

Microsoft.Extensions.Logging compatible logger for recording log messages during tests

Install / Use

/learn @horsdal/InMemoryLogger
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Build Status NuGet version

InMemoryLogger

Microsoft.Extensions.Logging compatible logger for recording log messages during tests

Getting started

Install from NuGet:

> dotnet add package InMemoryLogger 

Then add InMemoryLogger as the logger in your applications service collection:

      var services = new ServiceCollection()
        .AddLogging(x => x.AddInMemory())
        .BuildServiceProvider();

      var inMemLogger = services.GetService<InMemoryLogger>();

And then write a test that asserts on logs messages:

      var logger = services.GetService<ILogger<MyTest>>();
      logger.LogWarning("This is a log message");
      Assert.Contains(inMemLogger.RecordedWarningLogs, l => l.Message == "This is a log message");

Or on logged exceptions:

      var logger = services.GetService<ILogger<MyTest>>();
      var expected = new Exception();
      logger.LogError(expected, "This is another log message");
      Assert.Contains(inMemLogger.RecordedErrorLogs, l => l.Exception == expected);

That's it. All logs are in memory, all logs are recorded.

View on GitHub
GitHub Stars12
CategoryDevelopment
Updated6mo ago
Forks1

Languages

C#

Security Score

82/100

Audited on Sep 24, 2025

No findings