static void Main(string[] args) { var trace = new TraceSource("StructuredTracing.Example"); // Using Essential.Diagnostics.Core only (.NET 2.0) trace.TraceData(TraceEventType.Verbose, 0, new StructuredData(new Dictionary <string, object> { { "EmailAddress", "*****@*****.**" }, { "Delay", 123.45 } }, "Email sent")); trace.TraceData(TraceEventType.Information, 1001, new StructuredData("City {Place} has coordinates {@Location}", "Brisbane", new Location() { Latitude = -27.5, Longitude = 153.0 }, Guid.NewGuid())); // Using Essential.Diagnostics.StructuredExtensions (.NET 3.5) trace.TraceStructuredData(TraceEventType.Warning, 3001, new Dictionary <string, object> { { "CurrentValue", 49 }, { "Threshold", 50 } }, "Reached {CurrentValue}"); trace.TraceStructuredData(TraceEventType.Error, 5001, new ApplicationException(), "There was an error processing {OrderId}", 12345); // Using Essential.Diagnostics.Structured (.NET 2.0 fluent) var structuredTrace = new AssemblyStructuredTrace <StandardEventId, Program>(); structuredTrace.Information(StandardEventId.ConfigurationStart, "Configuration started: {Address}", new IPAddress(new byte[] { 192, 168, 1, 1 })); using (structuredTrace.BeginScope("Request", 1234)) { using (structuredTrace.BeginScope("Transaction", 5678)) { structuredTrace.Verbose("Item is between {Low} and {High}", 22, 24); structuredTrace.Critical(StandardEventId.SystemCriticalError, new ApplicationException(), "System error"); } } Console.WriteLine("Done"); Console.ReadKey(); }
public void StructuredTraceInterface() { var structuredTrace = new AssemblyStructuredTrace <TestEventId, TestClass>(); var listener = structuredTrace.TraceSource.Listeners.OfType <TestTraceListener>().First(); listener.MethodCallInformation.Clear(); var c = new TestClass(structuredTrace); c.DoWork(1); var events = listener.MethodCallInformation; Assert.AreEqual(TraceEventType.Information, events[0].EventType); Assert.AreEqual(1, events[0].Id); var data = (IStructuredData)events[0].Data[0]; Assert.AreEqual("a{b}", data["MessageTemplate"]); Assert.AreEqual(1, data["b"]); }