public void EventWithPayloadAndEnumsInXml()
        {
            string fileName = "LogUsingPayloadWithEnumsInProc";

            File.Delete(fileName);
            var formatter = new XmlEventTextFormatter(EventTextFormatting.Indented, "d");
            var logger    = MockEventSourceInProcEnum.Logger;

            using (var listener = new ObservableEventListener())
            {
                listener.EnableEvents(logger, EventLevel.LogAlways, Keywords.All);
                listener.LogToFlatFile(fileName, formatter);
                try
                {
                    logger.SendEnumsEvent16(MockEventSourceInProcEnum.MyColor.Green, MockEventSourceInProcEnum.MyFlags.Flag1);
                }
                finally
                {
                    listener.DisableEvents(logger);
                }
            }

            var rawOutput = FlatFileHelper.GetAllText(fileName);
            var entries   = XDocument.Parse("<Events>" + rawOutput + "</Events>").Root.Elements();

            Assert.AreEqual(1, entries.Count());
            XmlFormattedEntry.Fill(entries.First());
            Assert.AreEqual("a", XmlFormattedEntry.Payload.Elements().First().Attribute("Name").Value);
            Assert.AreEqual("2", XmlFormattedEntry.Payload.Elements().First().Value);
            Assert.AreEqual("b", XmlFormattedEntry.Payload.Elements().Last().Attribute("Name").Value);
            Assert.AreEqual("1", XmlFormattedEntry.Payload.Elements().Last().Value);
        }
        public void TwoEventsWithPayloadsAndMessageInXml()
        {
            var formatter = new XmlEventTextFormatter();
            var logger    = MockEventSrcForXml.Logger;

            string rawOutput = string.Empty;

            using (var listener = new InMemoryEventListener(formatter))
            {
                listener.EnableEvents(logger, EventLevel.LogAlways, MockEventSrcForXml.Keywords.Errors);
                try
                {
                    logger.LogUsingMessage(MockEventSrcForXml.LogMessage);
                    logger.LogUsingMessage(MockEventSrcForXml.LogMessage + "2");
                    rawOutput = Encoding.Default.GetString(listener.Stream.ToArray());
                }
                finally
                {
                    listener.DisableEvents(logger);
                }
            }

            var entries = XDocument.Parse("<Events>" + rawOutput + "</Events>").Root.Elements();

            Assert.AreEqual(2, entries.Count());
            XmlFormattedEntry.Fill(entries.First());
            Assert.AreEqual("message", XmlFormattedEntry.Payload.Elements().First().Attribute("Name").Value);
            Assert.AreEqual(MockEventSrcForXml.LogMessage, XmlFormattedEntry.Payload.Elements().First().Value);
            XmlFormattedEntry.Fill(entries.Last());
            Assert.AreEqual("message", XmlFormattedEntry.Payload.Elements().Last().Attribute("Name").Value);
            Assert.AreEqual(MockEventSrcForXml.LogMessage + "2", XmlFormattedEntry.Payload.Elements().First().Value);
            Assert.AreEqual(MockEventSrcForXml.LogMessage, XmlFormattedEntry.Message.Elements().First().Value);
        }
Example #3
0
        public void WhenEventWithGuidPramLoggedInXml()
        {
            string fileName = "FlatFileXmlFormatterAndGuids.log";

            File.Delete(fileName);
            var logger = MockEventSourceOutProcEnum.Logger;

            var testGuid = Guid.NewGuid();
            IEnumerable <XElement> entries;

            using (var svcConfiguration = TraceEventServiceConfiguration.Load("Configurations\\WithFormatter\\FlatFileXmlFormatterAndGuids.xml"))
                using (var evtService = new TraceEventService(svcConfiguration))
                {
                    evtService.Start();
                    try
                    {
                        logger.SaveExpenseStarted(testGuid);
                        entries = FlatFileHelper.PollUntilXmlEventsAreWritten(fileName, 1);
                    }
                    finally
                    {
                        evtService.Stop();
                    }
                }

            Assert.AreEqual(1, entries.Count());
            XmlFormattedEntry.Fill(entries.Single());
            Assert.AreEqual <Guid>(MockEventSourceOutProcEnum.Logger.Guid, Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual <int>(4, Convert.ToInt32(XmlFormattedEntry.EventId.Value));
            StringAssert.Contains(XmlFormattedEntry.Payload.ToString(), testGuid.ToString());
        }
Example #4
0
        public void EventWithActivityIdInXml()
        {
            var formatter = new XmlEventTextFormatter();
            var logger    = MockEventSrcForXml.Logger;

            var    activityId         = Guid.NewGuid();
            var    previousActivityId = Guid.Empty;
            string rawOutput          = string.Empty;

            using (var listener = new InMemoryEventListener(formatter))
            {
                listener.EnableEvents(logger, EventLevel.LogAlways, MockEventSrcForXml.Keywords.Errors);
                try
                {
                    EventSource.SetCurrentThreadActivityId(activityId, out previousActivityId);
                    logger.LogUsingMessage(MockEventSrcForXml.LogMessage);
                    rawOutput = Encoding.Default.GetString(listener.Stream.ToArray());
                }
                finally
                {
                    listener.DisableEvents(logger);
                    EventSource.SetCurrentThreadActivityId(previousActivityId);
                }
            }

            var entries = XDocument.Parse("<Events>" + rawOutput + "</Events>").Root.Elements();

            XmlFormattedEntry.Fill(entries.First());
            Assert.AreEqual <Guid>(EventSource.GetGuid(typeof(MockEventSrcForXml)), Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual(1, XmlFormattedEntry.Payload.Elements().Count());
            Assert.AreEqual("message", XmlFormattedEntry.Payload.Elements().First().Attribute("Name").Value);
            Assert.AreEqual(MockEventSrcForXml.LogMessage, XmlFormattedEntry.Payload.Elements().First().Value);
            Assert.AreEqual <Guid>(activityId, Guid.Parse(XmlFormattedEntry.Correlation.Attribute("ActivityID").Value));
            Assert.IsNull(XmlFormattedEntry.Correlation.Attribute("RelatedActivityID"));
        }
Example #5
0
        public void WhenCustomDateTimeFormatInXml()
        {
            string fileName = "FlatFileXmlFormatterDateTimeFormat.log";

            File.Delete(fileName);
            var logger = MockEventSourceOutProc.Logger;

            IEnumerable <XElement> entries;

            using (var svcConfiguration = TraceEventServiceConfiguration.Load("Configurations\\WithFormatter\\FlatFileXmlFormatterDateTimeFormat.xml"))
                using (var evtService = new TraceEventService(svcConfiguration))
                {
                    evtService.Start();
                    try
                    {
                        logger.LogSomeMessage("logging using xml Formatter not indented");
                        entries = FlatFileHelper.PollUntilXmlEventsAreWritten(fileName, 1);
                    }
                    finally
                    {
                        evtService.Stop();
                    }
                }

            Assert.AreEqual(1, entries.Count());
            XmlFormattedEntry.Fill(entries.Single());
            var    dt = DateTime.UtcNow;
            string expectedTimestamp = dt.Day.ToString() + dt.Month.ToString() + dt.Year.ToString();

            StringAssert.Contains(XmlFormattedEntry.TimeCreated.ToString(), @"SystemTime=""" + expectedTimestamp + @"""");
        }
        public void WhenEnumsInPayloadInXml()
        {
            string fileName = "FlatFileXmlFormatterAndEnums.log";

            File.Delete(fileName);
            var logger = MockEventSourceOutProcEnum.Logger;

            IEnumerable <XElement> entries = null;
            var svcConfiguration           = TraceEventServiceConfiguration.Load("Configurations\\WithFormatter\\FlatFileXmlFormatterAndEnums.xml");

            TestScenario.WithConfiguration(
                svcConfiguration,
                () =>
            {
                logger.SendEnumsEvent16(MockEventSourceOutProcEnum.MyColor.Red, MockEventSourceOutProcEnum.MyFlags.Flag3);
                entries = FlatFileHelper.PollUntilXmlEventsAreWritten(fileName, 1);
            });

            Assert.AreEqual(1, entries.Count());
            XmlFormattedEntry.Fill(entries.Single());
            Assert.AreEqual <Guid>(MockEventSourceOutProcEnum.Logger.Guid, Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual <int>(3, Convert.ToInt32(XmlFormattedEntry.EventId.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            Assert.AreEqual <int>((int)EventLevel.Informational, Int32.Parse(XmlFormattedEntry.Level.Value));
            Assert.AreEqual <int>((int)MockEventSourceOutProcEnum.Tasks.Opcode, Int32.Parse(XmlFormattedEntry.Task.Value));
            Assert.AreEqual <long>(0, Int64.Parse(XmlFormattedEntry.Keywords.Value.Replace("0x", string.Empty)));
            Assert.AreEqual <int>((int)EventOpcode.Resume, Int32.Parse(XmlFormattedEntry.Opcode.Value));
            Assert.AreEqual <int>(System.Diagnostics.Process.GetCurrentProcess().Id, Int32.Parse(XmlFormattedEntry.ProcessId.Value));
            Assert.AreEqual <int>(ThreadHelper.GetCurrentUnManagedThreadId(), Int32.Parse(XmlFormattedEntry.ThreadId.Value));
            Assert.AreEqual(2, XmlFormattedEntry.Payload.Elements().Count());
            StringAssert.Contains(XmlFormattedEntry.Payload.ToString(), @"<Data Name=""a"">" + ((int)MockEventSourceOutProcEnum.MyColor.Red).ToString() + "</Data>");
            StringAssert.Contains(XmlFormattedEntry.Payload.ToString(), @"<Data Name=""b"">" + ((int)MockEventSourceOutProcEnum.MyFlags.Flag3).ToString() + "</Data>");
        }
        public void WhenUsingXmlFormatterInIndented()
        {
            string fileName = "FlatFileXmlFormatterIndentedOutProc.log";

            File.Delete(fileName);
            var logger = MockEventSourceOutProc.Logger;

            IEnumerable <XElement> entries = null;
            var svcConfiguration           = TraceEventServiceConfiguration.Load("Configurations\\WithFormatter\\FlatFileXmlFormatterIndentedOutProc.xml");

            TestScenario.WithConfiguration(
                svcConfiguration,
                () =>
            {
                logger.LogSomeMessage("logging using xml Formatter indented");
                entries = FlatFileHelper.PollUntilXmlEventsAreWritten(fileName, 1);
            });

            XmlFormattedEntry.Fill(entries.Single());
            Assert.AreEqual <Guid>(MockEventSourceOutProc.Logger.Guid, Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual <int>(8, Convert.ToInt32(XmlFormattedEntry.EventId.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            Assert.AreEqual <int>((int)EventLevel.Informational, Int32.Parse(XmlFormattedEntry.Level.Value));
            Assert.AreEqual <int>(65526, Int32.Parse(XmlFormattedEntry.Task.Value));
            Assert.AreEqual <long>(0, Int64.Parse(XmlFormattedEntry.Keywords.Value.Replace("0x", string.Empty)));
            Assert.AreEqual <int>(0, Int32.Parse(XmlFormattedEntry.Opcode.Value));
            Assert.AreEqual <int>(System.Diagnostics.Process.GetCurrentProcess().Id, Int32.Parse(XmlFormattedEntry.ProcessId.Value));
            Assert.AreEqual <int>(ThreadHelper.GetCurrentUnManagedThreadId(), Int32.Parse(XmlFormattedEntry.ThreadId.Value));
            Assert.AreEqual(1, XmlFormattedEntry.Payload.Elements().Count());
            Assert.AreEqual("message", XmlFormattedEntry.Payload.Elements().First().Attribute("Name").Value);
            Assert.AreEqual("logging using xml Formatter indented", XmlFormattedEntry.Payload.Elements().First().Value);
        }
Example #8
0
        public void EventWithPayloadAndMessageWithDateTimeFormatInXml()
        {
            var formatter = new XmlEventTextFormatter();

            formatter.DateTimeFormat = "dd/MM/yyyy";
            var logger = MockEventSrcForXml.Logger;

            string rawOutput = string.Empty;

            using (var listener = new InMemoryEventListener(formatter))
            {
                listener.EnableEvents(logger, EventLevel.LogAlways, MockEventSrcForXml.Keywords.Errors);
                try
                {
                    logger.LogUsingMessage(MockEventSrcForXml.LogMessage);
                    rawOutput = Encoding.Default.GetString(listener.Stream.ToArray());
                }
                finally
                {
                    listener.DisableEvents(logger);
                }
            }

            var entries = XDocument.Parse("<Events>" + rawOutput + "</Events>").Root.Elements();

            XmlFormattedEntry.Fill(entries.First());
            Assert.IsFalse(rawOutput.StartsWith("{\r\n")); // No Formatting (Default)
            string today    = System.DateTime.Today.ToString(formatter.DateTimeFormat);
            string tomorrow = System.DateTime.Today.AddDays(1).ToString("dd/MM/yyyy");

            Assert.IsTrue(rawOutput.Contains(today) || rawOutput.Contains(tomorrow));
            Assert.AreEqual <Guid>(EventSource.GetGuid(typeof(MockEventSrcForXml)), Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual <int>(MockEventSrcForXml.LogUsingMessageEventID, Convert.ToInt32(XmlFormattedEntry.EventId.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            Assert.AreEqual <int>((int)EventLevel.Informational, Int32.Parse(XmlFormattedEntry.Level.Value));
            Assert.AreEqual <int>((int)MockEventSrcForXml.Tasks.Page, Int32.Parse(XmlFormattedEntry.Task.Value));
            Assert.AreEqual <long>((long)EventKeywords.None, Int64.Parse(XmlFormattedEntry.Keywords.Value.Replace("0x", string.Empty)));
            Assert.AreEqual <int>((int)EventOpcode.Start, Int32.Parse(XmlFormattedEntry.Opcode.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            Assert.AreEqual <int>(System.Diagnostics.Process.GetCurrentProcess().Id, Int32.Parse(XmlFormattedEntry.ProcessId.Value));
            Assert.AreEqual <int>(ThreadHelper.GetCurrentUnManagedThreadId(), Int32.Parse(XmlFormattedEntry.ThreadId.Value));
            DateTime dt;

            Assert.IsTrue(DateTime.TryParseExact(XmlFormattedEntry.TimeCreated.Attribute("SystemTime").Value, formatter.DateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt));
            Assert.AreEqual(1, XmlFormattedEntry.Payload.Elements().Count());
            Assert.AreEqual("message", XmlFormattedEntry.Payload.Elements().First().Attribute("Name").Value);
            Assert.AreEqual(MockEventSrcForXml.LogMessage, XmlFormattedEntry.Payload.Elements().First().Value);
            Assert.AreEqual(MockEventSrcForXml.LogMessage, XmlFormattedEntry.Message.Elements().First().Value);
        }
Example #9
0
        public void EventWithPayloadKeywrdsNoMsgInXml()
        {
            var logger    = MockEventSrcForXml.Logger;
            var formatter = new XmlEventTextFormatter();

            string rawOutput = string.Empty;

            using (var listener = new InMemoryEventListener(formatter))
            {
                listener.EnableEvents(logger, EventLevel.LogAlways, MockEventSrcForXml.Keywords.Errors);
                try
                {
                    logger.UsingKeywords(MockEventSrcForXml.LogMessage, long.MaxValue);
                    rawOutput = listener.ToString();
                }
                finally
                {
                    listener.DisableEvents(logger);
                }
            }

            Assert.AreEqual(-1, rawOutput.IndexOf("\r\n"));
            var entries = XDocument.Parse("<Events>" + rawOutput + "</Events>").Root.Elements();

            XmlFormattedEntry.Fill(entries.Single());
            Assert.AreEqual <Guid>(EventSource.GetGuid(typeof(MockEventSrcForXml)), Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual <int>(MockEventSrcForXml.UsingKeywordsEventID, Convert.ToInt32(XmlFormattedEntry.EventId.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            Assert.AreEqual <int>((int)EventLevel.Informational, Int32.Parse(XmlFormattedEntry.Level.Value));
            Assert.AreEqual <int>((int)MockEventSrcForXml.Tasks.DBQuery, Int32.Parse(XmlFormattedEntry.Task.Value));
            Assert.AreEqual <long>((long)MockEventSrcForXml.Keywords.Errors, Int64.Parse(XmlFormattedEntry.Keywords.Value.Replace("0x", string.Empty)));
            Assert.AreEqual <int>((int)EventOpcode.Start, Int32.Parse(XmlFormattedEntry.Opcode.Value));
            Assert.AreEqual <int>(System.Diagnostics.Process.GetCurrentProcess().Id, Int32.Parse(XmlFormattedEntry.ProcessId.Value));
            Assert.AreEqual <int>(ThreadHelper.GetCurrentUnManagedThreadId(), Int32.Parse(XmlFormattedEntry.ThreadId.Value));
            DateTime dt;

            Assert.IsTrue(DateTime.TryParseExact(XmlFormattedEntry.TimeCreated.Attribute("SystemTime").Value, EventEntry.DefaultDateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt));
            Assert.AreEqual(2, XmlFormattedEntry.Payload.Elements().Count());
            Assert.AreEqual("message", XmlFormattedEntry.Payload.Elements().First().Attribute("Name").Value);
            Assert.AreEqual(MockEventSrcForXml.LogMessage, XmlFormattedEntry.Payload.Elements().First().Value);
            Assert.AreEqual("longArg", XmlFormattedEntry.Payload.Elements().Last().Attribute("Name").Value);
            Assert.AreEqual(long.MaxValue.ToString(), XmlFormattedEntry.Payload.Elements().Last().Value);
        }
        public void EventWithPayloadAloneInXml()
        {
            var    formatter  = new XmlEventTextFormatter();
            string payloadMsg = ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<test/>");
            var    logger     = MockEventSrcForXml.Logger;

            string rawOutput = string.Empty;

            using (var listener = new InMemoryEventListener(formatter))
            {
                listener.EnableEvents(logger, EventLevel.LogAlways, MockEventSrcForXml.Keywords.Errors);
                try
                {
                    logger.LogUsingMessage(payloadMsg);
                    rawOutput = Encoding.Default.GetString(listener.Stream.ToArray());
                }
                finally
                {
                    listener.DisableEvents(logger);
                }
            }

            var entries = XDocument.Parse("<Events>" + rawOutput + "</Events>").Root.Elements();

            XmlFormattedEntry.Fill(entries.First());
            Assert.IsFalse(rawOutput.StartsWith("{\r\n")); // No Formatting (Default)
            Assert.AreEqual <Guid>(EventSource.GetGuid(typeof(MockEventSrcForXml)), Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual <int>(MockEventSrcForXml.LogUsingMessageEventID, Convert.ToInt32(XmlFormattedEntry.EventId.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            Assert.AreEqual <int>((int)EventLevel.Informational, Int32.Parse(XmlFormattedEntry.Level.Value));
            Assert.AreEqual <int>((int)EventTask.None, Int32.Parse(XmlFormattedEntry.Task.Value));
            Assert.AreEqual <long>((long)EventKeywords.None, Int64.Parse(XmlFormattedEntry.Keywords.Value.Replace("0x", string.Empty)));
            Assert.AreEqual <int>((int)EventOpcode.Start, Int32.Parse(XmlFormattedEntry.Opcode.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            DateTime dt;

            Assert.IsTrue(DateTime.TryParseExact(XmlFormattedEntry.TimeCreated.Attribute("SystemTime").Value, EventEntry.DefaultDateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt));
            Assert.AreEqual(1, XmlFormattedEntry.Payload.Elements().Count());
            Assert.AreEqual("message", XmlFormattedEntry.Payload.Elements().First().Attribute("Name").Value);
            Assert.AreEqual(payloadMsg, XmlFormattedEntry.Payload.Elements().First().Value);
        }
Example #11
0
        public void WhenEnumsInPayloadInXml()
        {
            string fileName = "FlatFileXmlFormatterAndEnums.log";

            File.Delete(fileName);
            var logger = MockEventSourceOutProcEnum.Logger;

            IEnumerable <XElement> entries;

            using (var svcConfiguration = TraceEventServiceConfiguration.Load("Configurations\\WithFormatter\\FlatFileXmlFormatterAndEnums.xml"))
                using (var evtService = new TraceEventService(svcConfiguration))
                {
                    evtService.Start();
                    try
                    {
                        logger.SendEnumsEvent16(MockEventSourceOutProcEnum.MyColor.Red, MockEventSourceOutProcEnum.MyFlags.Flag3);
                        entries = FlatFileHelper.PollUntilXmlEventsAreWritten(fileName, 1);
                    }
                    finally
                    {
                        evtService.Stop();
                    }
                }

            Assert.AreEqual(1, entries.Count());
            XmlFormattedEntry.Fill(entries.Single());
            Assert.AreEqual <Guid>(MockEventSourceOutProcEnum.Logger.Guid, Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual <int>(3, Convert.ToInt32(XmlFormattedEntry.EventId.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            Assert.AreEqual <int>((int)EventLevel.Informational, Int32.Parse(XmlFormattedEntry.Level.Value));
            Assert.AreEqual <int>((int)EventTask.None, Int32.Parse(XmlFormattedEntry.Task.Value));
            Assert.AreEqual <long>(0, Int64.Parse(XmlFormattedEntry.Keywords.Value.Replace("0x", string.Empty)));
            Assert.AreEqual <int>((int)EventOpcode.Resume, Int32.Parse(XmlFormattedEntry.Opcode.Value));
            Assert.AreEqual(2, XmlFormattedEntry.Payload.Elements().Count());
            StringAssert.Contains(XmlFormattedEntry.Payload.ToString(), @"<Data Name=""a"">" + ((int)MockEventSourceOutProcEnum.MyColor.Red).ToString() + "</Data>");
            StringAssert.Contains(XmlFormattedEntry.Payload.ToString(), @"<Data Name=""b"">" + ((int)MockEventSourceOutProcEnum.MyFlags.Flag3).ToString() + "</Data>");
        }
Example #12
0
        public void WhenNotIntendedInXml()
        {
            string fileName = "FlatFileXmlFormatterOutProc.log";

            File.Delete(fileName);
            var logger = MockEventSourceOutProc.Logger;

            IEnumerable <XElement> entries;

            using (var svcConfiguration = TraceEventServiceConfiguration.Load("Configurations\\WithFormatter\\FlatFileXmlFormatterOutProc.xml"))
                using (var evtService = new TraceEventService(svcConfiguration))
                {
                    evtService.Start();
                    try
                    {
                        logger.LogSomeMessage("logging using xml Formatter not indented");
                        entries = FlatFileHelper.PollUntilXmlEventsAreWritten(fileName, 1);
                    }
                    finally
                    {
                        evtService.Stop();
                    }
                }

            Assert.AreEqual(1, entries.Count());
            XmlFormattedEntry.Fill(entries.Single());
            Assert.AreEqual <Guid>(MockEventSourceOutProc.Logger.Guid, Guid.Parse(XmlFormattedEntry.Provider.Attribute("Guid").Value));
            Assert.AreEqual <int>(8, Convert.ToInt32(XmlFormattedEntry.EventId.Value));
            Assert.AreEqual <byte>(0, Convert.ToByte(XmlFormattedEntry.Version.Value));
            Assert.AreEqual <int>((int)EventLevel.Informational, Int32.Parse(XmlFormattedEntry.Level.Value));
            Assert.AreEqual <int>(65526, Int32.Parse(XmlFormattedEntry.Task.Value));
            Assert.AreEqual <long>(0, Int64.Parse(XmlFormattedEntry.Keywords.Value.Replace("0x", string.Empty)));
            Assert.AreEqual <int>(0, Int32.Parse(XmlFormattedEntry.Opcode.Value));
            Assert.AreEqual(1, XmlFormattedEntry.Payload.Elements().Count());
            Assert.AreEqual("message", XmlFormattedEntry.Payload.Elements().First().Attribute("Name").Value);
            Assert.AreEqual("logging using xml Formatter not indented", XmlFormattedEntry.Payload.Elements().First().Value);
        }