public void TestBasicEventLogging() { TextWriter writer = new StringWriter(); LayoutLoggerXml layout = new LayoutLoggerXml(); LogObjectData evt = CreateBaseEvent(); layout.Format(writer, null, new LogObject(evt)); string expected = CreateEventNode("Test message"); Assert.AreEqual(expected, writer.ToString()); }
public void TestBase64EventLogging() { TextWriter writer = new StringWriter(); LayoutLoggerXml layout = new LayoutLoggerXml(); LogObjectData evt = CreateBaseEvent(); layout.base64EncodeMessage = true; layout.Format(writer, null, new LogObject(evt)); string expected = CreateEventNode("VGVzdCBtZXNzYWdl"); Assert.AreEqual(expected, writer.ToString()); }
private static void AssertExpectedLoggingEvent(LogObject loggingEvent, LogObjectData loggingEventData) { Assert.AreEqual("ReallySimpleApp", loggingEventData.Domain, "Domain is incorrect"); Assert.AreEqual("System.Exception: This is the exception", loggingEvent.GetExceptionString(), "Exception is incorrect"); Assert.AreEqual(null, loggingEventData.Identity, "Identity is incorrect"); Assert.AreEqual(Level.Warn, loggingEventData.Level, "Level is incorrect"); Assert.AreEqual("get_Location", loggingEvent.Location.MethodName, "Location Info is incorrect"); Assert.AreEqual("UnitTest.Base.Log.FixingTest", loggingEventData.LoggerName, "LoggerName is incorrect"); Assert.AreEqual(LogManager.GetController(TEST_CONTROLLER), loggingEvent.Controller, "Repository is incorrect"); Assert.AreEqual(Thread.CurrentThread.Name, loggingEventData.ThreadName, "ThreadName is incorrect"); // This test is redundant as loggingEventData.TimeStamp is a value type and cannot be null // Assert.IsNotNull(loggingEventData.TimeStampUtc, "TimeStamp is incorrect"); Assert.AreEqual("Logging event works", loggingEvent.RenderedMessage, "Message is incorrect"); }
private static LogObjectData BuildStandardEventData() { LogObjectData loggingEventData = new LogObjectData(); loggingEventData.LoggerName = Soyo.Base.SystemInfo.TypeName <FixingTest>(); loggingEventData.Level = Level.Warn; loggingEventData.Message = "Logging event works"; loggingEventData.Domain = "ReallySimpleApp"; loggingEventData.Location = new LocationInfo(typeof(FixingTest).Name, "Main", "Class1.cs", "29"); //Completely arbitary loggingEventData.ThreadName = Thread.CurrentThread.Name; loggingEventData.Date = DateTime.UtcNow.Date; loggingEventData.ExceptionString = "Exception occured here"; return(loggingEventData); }
public void TestIllegalCharacterMasking() { TextWriter writer = new StringWriter(); LayoutLoggerXml layout = new LayoutLoggerXml(); LogObjectData evt = CreateBaseEvent(); evt.Message = "This is a masked char->\uFFFF"; layout.Format(writer, null, new LogObject(evt)); string expected = CreateEventNode("This is a masked char->?"); Assert.AreEqual(expected, writer.ToString()); }
public void TestCDATAEscaping3() { TextWriter writer = new StringWriter(); LayoutLoggerXml layout = new LayoutLoggerXml(); LogObjectData evt = CreateBaseEvent(); //The &'s trigger the use of a cdata block evt.Message = "]]>&&&&&&&Escape the begining"; layout.Format(writer, null, new LogObject(evt)); string expected = CreateEventNode("<![CDATA[]]>]]<![CDATA[>&&&&&&&Escape the begining]]>"); Assert.AreEqual(expected, writer.ToString()); }
public void TestUnfixedValues() { LogObjectData loggingEventData = BuildStandardEventData(); LogObject loggingEvent = new LogObject( loggingEventData.Location.GetType(), LogManager.GetController(TEST_CONTROLLER), loggingEventData.LoggerName, loggingEventData.Level, loggingEventData.Message, new Exception("This is the exception")); AssertExpectedLoggingEvent(loggingEvent, loggingEventData); Assert.AreEqual(FixFlags.None, loggingEvent.Fix, "Fixed Fields is incorrect"); }
/// <summary> /// Build a basic <see cref="LogObjectData"/> object with some default values. /// </summary> /// <returns>A useful LoggingEventData object</returns> private LogObjectData CreateBaseEvent() { LogObjectData ed = new LogObjectData(); ed.Domain = "Tests"; ed.ExceptionString = ""; ed.Identity = "TestRunner"; ed.Level = Level.Info; ed.Location = new LocationInfo(GetType()); ed.LoggerName = "TestLogger"; ed.Message = "Test message"; ed.ThreadName = "TestThread"; ed.Date = DateTime.Today.ToUniversalTime(); ed.PropertySet = new PropertySet(); return(ed); }
public void TestAllFixedValues() { LogObjectData loggingEventData = BuildStandardEventData(); // LoggingEvents occur at distinct points in time LogObject loggingEvent = new LogObject( loggingEventData.Location.GetType(), LogManager.GetController(TEST_CONTROLLER), loggingEventData.LoggerName, loggingEventData.Level, loggingEventData.Message, new Exception("This is the exception")); AssertExpectedLoggingEvent(loggingEvent, loggingEventData); loggingEvent.Fix = FixFlags.All; Assert.AreEqual(FixFlags.Location | FixFlags.Identity | FixFlags.Partial | FixFlags.Message | FixFlags.ThreadName | FixFlags.Exception | FixFlags.Domain | FixFlags.PropertySet, loggingEvent.Fix, "Fixed Fields is incorrect"); }
public void TestPropertyIllegalCharacterMaskingInName() { LogObjectData evt = CreateBaseEvent(); evt.PropertySet["Property\uFFFF"] = "mask this ->\uFFFF"; LayoutLoggerXml layout = new LayoutLoggerXml(); StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestThreadProperiesPattern"); log1.Logger.Log(new LogObject(evt)); string expected = CreateEventNode("Property?", "mask this ->?"); Assert.AreEqual(expected, stringAppender.GetString()); }
public void TestPropertyCharacterEscaping() { LogObjectData evt = CreateBaseEvent(); evt.PropertySet["Property1"] = "prop1 \"quoted\""; LayoutLoggerXml layout = new LayoutLoggerXml(); StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestThreadProperiesPattern"); log1.Logger.Log(new LogObject(evt)); string expected = CreateEventNode("Property1", "prop1 "quoted""); Assert.AreEqual(expected, stringAppender.GetString()); }
public void TestBase64PropertyEventLogging() { LogObjectData evt = CreateBaseEvent(); evt.PropertySet["Property1"] = "prop1"; LayoutLoggerXml layout = new LayoutLoggerXml(); layout.base64EncodeProperties = true; StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString()); BasicConfig.Config(rep, stringAppender); ILog log1 = LogManager.Get(rep.Name, "TestThreadProperiesPattern"); log1.Logger.Log(new LogObject(evt)); string expected = CreateEventNode("Property1", "cHJvcDE="); Assert.AreEqual(expected, stringAppender.GetString()); }