예제 #1
0
        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);
        }
예제 #2
0
        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);
        }