public void TestShutdownAndReconfigure() { ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); StringAppender stringAppender = new StringAppender(); stringAppender.Layout = new LayoutPattern("%m"); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "logger1"); log1.Info("TestMessage1"); Assert.AreEqual("TestMessage1", stringAppender.GetString(), "Test logging configured"); stringAppender.Reset(); rep.Terminate(); log1.Info("TestMessage2"); Assert.AreEqual("", stringAppender.GetString(), "Test not logging while shutdown"); stringAppender.Reset(); stringAppender = new StringAppender(); stringAppender.Layout = new LayoutPattern("%m"); BasicConfig.Config(rep, stringAppender); log1.Info("TestMessage3"); Assert.AreEqual("TestMessage3", stringAppender.GetString(), "Test logging re-configured"); stringAppender.Reset(); }
public void TestGlobalPropertiesPattern() { StringAppender stringAppender = new StringAppender(); stringAppender.Layout = NewPatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestGlobalProperiesPattern"); log1.Info("TestMessage"); Assert.AreEqual(TextDefault.NullText, stringAppender.GetString(), "Test no global properties value set"); stringAppender.Reset(); GlobalContext.Set(Utils.PROPERTY_KEY, "val1"); log1.Info("TestMessage"); Assert.AreEqual("val1", stringAppender.GetString(), "Test global properties value set"); stringAppender.Reset(); GlobalContext.Remove(Utils.PROPERTY_KEY); log1.Info("TestMessage"); Assert.AreEqual(TextDefault.NullText, stringAppender.GetString(), "Test global properties value removed"); stringAppender.Reset(); }
public void TestThreadStackPattern2() { StringAppender stringAppender = new StringAppender(); stringAppender.Layout = new LayoutPattern("%property{" + Utils.PROPERTY_KEY + "}"); ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestThreadStackPattern"); log1.Info("TestMessage"); Assert.AreEqual(TextDefault.NullText, stringAppender.GetString(), "Test no thread stack value set"); stringAppender.Reset(); using (ThreadContext.Stacks[Utils.PROPERTY_KEY].Push("val1")) { log1.Info("TestMessage"); Assert.AreEqual("val1", stringAppender.GetString(), "Test thread stack value set"); stringAppender.Reset(); using (ThreadContext.Stacks[Utils.PROPERTY_KEY].Push("val2")) { log1.Info("TestMessage"); Assert.AreEqual("val1 val2", stringAppender.GetString(), "Test thread stack value pushed 2nd val"); stringAppender.Reset(); } } log1.Info("TestMessage"); Assert.AreEqual(TextDefault.NullText, stringAppender.GetString(), "Test thread stack value removed"); stringAppender.Reset(); }
public void TestLogFormatApi_NoException() { StringAppender stringAppender = new StringAppender(); stringAppender.Threshold = Level.Off; stringAppender.Layout = new LayoutPattern("%level:%message"); ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestLogFormatApi_Exception"); // *** log1.Exception("TestMessage"); Assert.AreEqual("", stringAppender.GetString(), "Test simple EXCEPTION event 1"); stringAppender.Reset(); // *** log1.Exception("TestMessage", null); Assert.AreEqual("", stringAppender.GetString(), "Test simple EXCEPTION event 2"); stringAppender.Reset(); // *** log1.Exception("TestMessage", new Exception("Exception message")); Assert.AreEqual("", stringAppender.GetString(), "Test simple EXCEPTION event 3"); stringAppender.Reset(); // *** log1.ExceptionFormat("a{0}", "1"); Assert.AreEqual("", stringAppender.GetString(), "Test formatted EXCEPTION event with 1 parm"); stringAppender.Reset(); // *** log1.ExceptionFormat("a{0}b{1}", "1", "2"); Assert.AreEqual("", stringAppender.GetString(), "Test formatted EXCEPTION event with 2 parm"); stringAppender.Reset(); // *** log1.ExceptionFormat("a{0}b{1}c{2}", "1", "2", "3"); Assert.AreEqual("", stringAppender.GetString(), "Test formatted EXCEPTION event with 3 parm"); stringAppender.Reset(); // *** log1.ExceptionFormat("a{0}b{1}c{2}d{3}e{4}f", "Q", "W", "E", "R", "T", "Y"); Assert.AreEqual("", stringAppender.GetString(), "Test formatted EXCEPTION event with 5 parms (only 4 used)"); stringAppender.Reset(); // *** log1.ExceptionFormat(null, "Before {0} After {1}", "Middle", "End"); Assert.AreEqual("", stringAppender.GetString(), "Test formatting with null provider"); stringAppender.Reset(); // *** log1.ExceptionFormat(new CultureInfo("en"), "Before {0} After {1}", "Middle", "End"); Assert.AreEqual("", stringAppender.GetString(), "Test formatting with 'en' provider"); stringAppender.Reset(); }
public void TestLogFormatApi_Debug() { StringAppender stringAppender = new StringAppender(); stringAppender.Layout = new LayoutPattern("%level:%message"); ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestLogFormatApi_Debug"); // *** log1.Debug("TestMessage"); Assert.AreEqual("DEBUG:TestMessage", stringAppender.GetString(), "Test simple DEBUG event 1"); stringAppender.Reset(); // *** log1.Debug("TestMessage", null); Assert.AreEqual("DEBUG:TestMessage", stringAppender.GetString(), "Test simple DEBUG event 2"); stringAppender.Reset(); // *** log1.Debug("TestMessage", new Exception("Exception message")); Assert.AreEqual("DEBUG:TestMessage\r\nException: Message: Exception message" + Environment.NewLine + "System.Exception: Exception message" + Environment.NewLine, stringAppender.GetString(), "Test simple DEBUG event 3"); stringAppender.Reset(); // *** log1.DebugFormat("a{0}", "1"); Assert.AreEqual("DEBUG:a1", stringAppender.GetString(), "Test formatted DEBUG event with 1 parm"); stringAppender.Reset(); // *** log1.DebugFormat("a{0}b{1}", "1", "2"); Assert.AreEqual("DEBUG:a1b2", stringAppender.GetString(), "Test formatted DEBUG event with 2 parm"); stringAppender.Reset(); // *** log1.DebugFormat("a{0}b{1}c{2}", "1", "2", "3"); Assert.AreEqual("DEBUG:a1b2c3", stringAppender.GetString(), "Test formatted DEBUG event with 3 parm"); stringAppender.Reset(); // *** log1.DebugFormat("a{0}b{1}c{2}d{3}e{4}f", "Q", "W", "E", "R", "T", "Y"); Assert.AreEqual("DEBUG:aQbWcEdReTf", stringAppender.GetString(), "Test formatted DEBUG event with 5 parms (only 4 used)"); stringAppender.Reset(); // *** log1.DebugFormat(null, "Before {0} After {1}", "Middle", "End"); Assert.AreEqual("DEBUG:Before Middle After End", stringAppender.GetString(), "Test formatting with null provider"); stringAppender.Reset(); // *** log1.DebugFormat(new CultureInfo("en"), "Before {0} After {1}", "Middle", "End"); Assert.AreEqual("DEBUG:Before Middle After End", stringAppender.GetString(), "Test formatting with 'en' provider"); stringAppender.Reset(); }
public void TestFormatString() { StringAppender stringAppender = new StringAppender(); stringAppender.Layout = new LayoutPattern("%message"); ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestFormatString"); // *** log1.Info("TestMessage"); Assert.AreEqual("TestMessage", stringAppender.GetString(), "Test simple INFO event"); stringAppender.Reset(); // *** log1.DebugFormat("Before {0} After", "Middle"); Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted DEBUG event"); stringAppender.Reset(); // *** log1.InfoFormat("Before {0} After", "Middle"); Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted INFO event"); stringAppender.Reset(); // *** log1.WarnFormat("Before {0} After", "Middle"); Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted WARN event"); stringAppender.Reset(); // *** log1.ErrorFormat("Before {0} After", "Middle"); Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted ERROR event"); stringAppender.Reset(); // *** log1.ExceptionFormat("Before {0} After", "Middle"); Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted FATAL event"); stringAppender.Reset(); // *** log1.InfoFormat("Before {0} After {1}", "Middle", "End"); Assert.AreEqual("Before Middle After End", stringAppender.GetString(), "Test simple formatted INFO event 2"); stringAppender.Reset(); // *** log1.InfoFormat("IGNORE THIS WARNING - EXCEPTION EXPECTED Before {0} After {1} {2}", "Middle", "End"); Assert.AreEqual(STRING_FORMAT_ERROR, stringAppender.GetString(), "Test formatting error"); stringAppender.Reset(); }
public void NamedPatternConverterWithPrecision2ShouldStripLessLeadingStuffIfPresent() { StringAppender stringAppender = new StringAppender(); LayoutPattern layout = NewPatternLayout(); layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter)); layout.Pattern = "%message-as-name{2}"; layout.Activate(); stringAppender.Layout = layout; ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestAddingCustomPattern"); log1.Info("NoDots"); Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("One.Dot"); Assert.AreEqual("One.Dot", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("Tw.o.Dots"); Assert.AreEqual("o.Dots", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("TrailingDot."); Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info(".LeadingDot"); Assert.AreEqual("LeadingDot", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); // empty string and other evil combinations as tests for of-by-one mistakes in index calculations log1.Info(string.Empty); Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("x"); Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); log1.Info("."); Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered"); stringAppender.Reset(); }
public void TestStackTracePattern() { StringAppender stringAppender = new StringAppender(); stringAppender.Layout = NewPatternLayout("%stacktrace{2}"); ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestStackTracePattern"); log1.Info("TestMessage"); StringAssert.EndsWith("PatternLayoutTest.TestStackTracePattern", stringAppender.GetString(), "stack trace value set"); stringAppender.Reset(); }
public void TestExceptionPattern() { StringAppender stringAppender = new StringAppender(); LayoutPattern layout = NewPatternLayout("%exception{stacktrace}"); stringAppender.Layout = layout; ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestExceptionPattern"); Exception exception = new Exception("Oh no!"); log1.Info("TestMessage", exception); Assert.AreEqual(TextDefault.NullText, stringAppender.GetString()); stringAppender.Reset(); }
public void TestAddingCustomPattern() { StringAppender stringAppender = new StringAppender(); LayoutPattern layout = NewPatternLayout(); layout.AddConverter("TestAddingCustomPattern", typeof(TestMessagePatternConverter)); layout.Pattern = "%TestAddingCustomPattern"; layout.Activate(); stringAppender.Layout = layout; ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestAddingCustomPattern"); log1.Info("TestMessage"); Assert.AreEqual("TestMessage", stringAppender.GetString(), "%TestAddingCustomPattern not registered"); stringAppender.Reset(); }