public void when_activity_has_exception_then_traces_data()
        {
            var xmlFile  = Path.GetTempFileName();
            var listener = new XmlWriterTraceListener(xmlFile);

            Tracer.Configuration.AddListener("Foo", listener);
            Tracer.Configuration.SetTracingLevel("Foo", SourceLevels.All);

            var tracer = Tracer.Get("Foo");

            using (var outer = tracer.StartActivity("Outer")) {
                using (var inner = tracer.StartActivity("Inner")) {
                    tracer.Info("Hey & > 23!");
                }

                try {
                    throw new ArgumentException();
                } catch (Exception ex) {
                    ex.Data.Add("Version", "1.0");
                    ex.Data.Add("Branch", "master");
                    ex.Data.Add("Commit", "1ab314b");
                    tracer.Error(ex, "Some error!");
                }
            }

            Tracer.Configuration.RemoveListener("Foo", listener);
            listener.Flush();
            listener.Dispose();

            var xmlns       = XNamespace.Get("http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord");
            var commitFound = false;

            using (var reader = XmlReader.Create(xmlFile, new XmlReaderSettings {
                ConformanceLevel = ConformanceLevel.Fragment
            })) {
                Assert.Equal(XmlNodeType.Element, reader.MoveToContent());
                do
                {
                    var xml    = reader.ReadOuterXml();
                    var doc    = XDocument.Load(new StringReader(xml));
                    var record = doc.Descendants(xmlns + "TraceRecord").FirstOrDefault();
                    if (record != null && record.Attribute("Severity") != null && record.Attribute("Severity").Value == "Error")
                    {
                        commitFound = record.Element(xmlns + "DataItems")?.Element(xmlns + "Commit")?.Value == "1ab314b";
                    }
                } while (!commitFound && !reader.EOF);
            }

            Assert.True(commitFound, "Failed to find traced commit ID exception data.");

            //Process.Start ("notepad", xml);

            //Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcTraceViewer.exe", xml);
            //Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\SvcTraceViewer.exe", xml);
            //Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcTraceViewer.exe", xml);
            //Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\SvcTraceViewer.exe", xml);
        }
Esempio n. 2
0
        public void when_activity_has_exception_then_traces_data()
        {
            var xml      = Path.GetTempFileName();
            var listener = new XmlWriterTraceListener(xml);

            Tracer.Configuration.AddListener("Foo", listener);
            Tracer.Configuration.SetTracingLevel("Foo", SourceLevels.All);

            var tracer = Tracer.Get("Foo");

            using (var outer = tracer.StartActivity("Outer")) {
                using (var inner = tracer.StartActivity("Inner")) {
                    tracer.Info("Hey & > 23!");
                }

                try {
                    throw new ArgumentException();
                } catch (Exception ex) {
                    ex.Data.Add("Version", "1.0");
                    ex.Data.Add("Branch", "master");
                    ex.Data.Add("Commit", "1ab314b");
                    tracer.Error(ex, "Some error!");
                }
            }

            Tracer.Configuration.RemoveListener("Foo", listener);
            listener.Flush();
            listener.Dispose();

            using (var reader = XmlReader.Create(xml, new XmlReaderSettings {
                ConformanceLevel = ConformanceLevel.Fragment
            })) {
                Assert.Equal(XmlNodeType.Element, reader.MoveToContent());
                while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.Element && reader.NamespaceURI == "http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord")
                    {
                        Assert.True(reader.ReadToDescendant("Commit", "http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord"));
                        Assert.Equal("1ab314b", reader.ReadElementContentAsString());
                    }
                }
            }

            //Process.Start ("notepad", xml);

            //Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcTraceViewer.exe", xml);
            //Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\SvcTraceViewer.exe", xml);
            //Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcTraceViewer.exe", xml);
            //Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\SvcTraceViewer.exe", xml);
        }
		public void when_activity_has_exception_then_traces_data ()
		{
			var xmlFile = Path.GetTempFileName();
			var listener = new XmlWriterTraceListener(xmlFile);

			Tracer.Configuration.AddListener ("Foo", listener);
			Tracer.Configuration.SetTracingLevel ("Foo", SourceLevels.All);

			var tracer = Tracer.Get("Foo");

			using (var outer = tracer.StartActivity ("Outer")) {
				using (var inner = tracer.StartActivity("Inner")) {
					tracer.Info ("Hey & > 23!");
				}

				try {
					throw new ArgumentException ();
				} catch (Exception ex) {
					ex.Data.Add ("Version", "1.0");
					ex.Data.Add ("Branch", "master");
					ex.Data.Add ("Commit", "1ab314b");
					tracer.Error (ex, "Some error!");
				}
			}

			Tracer.Configuration.RemoveListener ("Foo", listener);
			listener.Flush ();
			listener.Dispose ();

			var xmlns = XNamespace.Get("http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord");
			var commitFound = false;

			using (var reader = XmlReader.Create (xmlFile, new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Fragment })) {
				Assert.Equal (XmlNodeType.Element, reader.MoveToContent ());
				do {
					var xml = reader.ReadOuterXml();
					var doc = XDocument.Load(new StringReader(xml));
					var record = doc.Descendants(xmlns + "TraceRecord").FirstOrDefault();
					if (record != null && record.Attribute("Severity") != null && record.Attribute("Severity").Value == "Error") {
						commitFound = record.Element(xmlns + "DataItems")?.Element(xmlns + "Commit")?.Value == "1ab314b";
					}
				} while (!commitFound && !reader.EOF);
			}

			Assert.True(commitFound, "Failed to find traced commit ID exception data.");

			//Process.Start ("notepad", xml);

			//Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcTraceViewer.exe", xml);
			//Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\SvcTraceViewer.exe", xml);
			//Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcTraceViewer.exe", xml);
			//Process.Start (@"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\SvcTraceViewer.exe", xml);
		}