public void LoggerMessage_IsCorrect(string name, Action <Microsoft.Extensions.Logging.ILogger> logAction, string method, string expectedResult) { global::Serilog.ILogger newLogger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.InMemory() .CreateLogger(); Log.Logger = newLogger; ILoggerFactory loggerFactory = new SerilogLoggerFactory(); Microsoft.Extensions.Logging.ILogger logger = loggerFactory.CreateLogger("test"); logger.Here(logAction); var result = InMemorySink.Instance.LogEvents.First().RenderMessage(); TestContext.WriteLine($"Method: {method} Template: {InMemorySink.Instance.LogEvents.First().MessageTemplate} Render: {InMemorySink.Instance.LogEvents.First().RenderMessage()}"); var templateFile = Path.Combine(TestContext.CurrentContext.TestDirectory, "templates.txt"); File.AppendAllLines(templateFile, new string[] { $"<tr><td>{method}</td><td>{InMemorySink.Instance.LogEvents.First().RenderMessage()}</td></tr>" }); newLogger = null; Log.CloseAndFlush(); InMemorySink.Instance.Dispose(); Assert.AreEqual(expectedResult, result); }
public string LoggerMessage_IsCorrect(string name, Action <Microsoft.Extensions.Logging.ILogger> logAction) { var config = new global::NLog.Config.LoggingConfiguration(); var memoryTarget = new global::NLog.Targets.MemoryTarget(); memoryTarget.Layout = "${message}"; // Message format config.AddRuleForAllLevels(memoryTarget); LogManager.Configuration = config; ILoggerFactory loggerFactory = new NLogLoggerFactory(new NLogProviderOptions()); Microsoft.Extensions.Logging.ILogger logger = loggerFactory.CreateLogger("test"); logger.Here(logAction); string result = memoryTarget.Logs.First(); logger = null; memoryTarget.Dispose(); LogManager.Shutdown(); return(result); }