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());
        }
Example #3
0
 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");
 }
Example #4
0
        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-&gt;?");

            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());
        }
Example #7
0
        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);
        }
Example #9
0
        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");
        }
Example #10
0
        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 -&gt;?");

            Assert.AreEqual(expected, stringAppender.GetString());
        }
Example #11
0
        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 &quot;quoted&quot;");

            Assert.AreEqual(expected, stringAppender.GetString());
        }
Example #12
0
        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());
        }