public void CanDisposeRepeatedly() { var traceSource = new TraceSource(MethodBase.GetCurrentMethod().Name, SourceLevels.All); using (var context = new LogicalOperationScope(traceSource, traceSource.Name)) context.Dispose(); }
public void ActivityThenLogical() { var source = GetTrace(); using (var scope = new ActivityScope(source, "MultipleTracedClassTestScope")) { source.TraceEvent(TraceEventType.Information, 3, "Log entry 1"); var sample1 = new SampleClass(); sample1 = Extensions.Wrap <SampleClass>(sample1); var sample2 = new SampleClass(); var oppId = "MyLogicalOpp"; using (var lScope = new LogicalOperationScope(source, "MyLogicalScope")) { sample1.Method1(); source.TraceEvent(TraceEventType.Information, 3, "Log entry 3"); using (var scope2 = new ActivityScope(source, "Sub Activity")) { using (var lScope1 = new LogicalOperationScope(source, "Scope 2")) sample1.TraceInformation("test1"); sample2.TraceInformation("test2"); } } var listeners = sample2.Trace.Listeners; //var listener = listeners.OfType<TransactionTraceListener>().First(); //var log = listener.GetTransaction(); } }
public void ReturnName() { var traceSource = new TraceSource(MethodBase.GetCurrentMethod().Name, SourceLevels.All); using (var context = new LogicalOperationScope(traceSource, traceSource.Name)) Assert.Equal(traceSource.Name, context.ToString()); }
public void DoWork() { var source = new ExtendedTraceSource("ServerComponent"); try { using (var lScope = new LogicalOperationScope(source, "Process C")) { var sample2 = new MyServerComponent(source); sample2.TraceEvent(TraceEventType.Information, 10, "Server Message for the Process"); } Trace.WriteLine("Hi"); Console.WriteLine("HIII"); } catch (Exception ex) { source.TraceEvent(TraceEventType.Error, 11, ex.ToString()); Trace.WriteLine(ex.ToString()); Console.WriteLine(ex.ToString()); } finally { source.Close(); } }
public void ScopeManualStartStopMessages() { TraceSource source = new TraceSource("testScope1Source"); var listener = source.Listeners.OfType <TestTraceListener>().First(); listener.MethodCallInformation.Clear(); var operationId = "X"; using (var scope1 = new LogicalOperationScope(operationId)) { source.TraceEvent(TraceEventType.Start, 11, "Start {0}", operationId); source.TraceEvent(TraceEventType.Warning, 1, "A"); source.TraceEvent(TraceEventType.Stop, 12, "Stop {0}", operationId); } var events = listener.MethodCallInformation; Assert.AreEqual(3, events.Count); Assert.AreEqual("Start X", events[0].Message); Assert.AreEqual(11, events[0].Id); Assert.AreEqual("Stop X", events[2].Message); Assert.AreEqual(12, events[2].Id); }
public void ScopeManualStartStopMessages() { TraceSource source = new TraceSource("inmemory1Source"); var listener = source.Listeners.OfType <InMemoryTraceListener>().First(); listener.Clear(); var operationId = "X"; using (var scope1 = new LogicalOperationScope(operationId)) { source.TraceEvent(TraceEventType.Start, 11, "Start {0}", operationId); source.TraceEvent(TraceEventType.Warning, 1, "A"); source.TraceEvent(TraceEventType.Stop, 12, "Stop {0}", operationId); } var events = listener.GetEvents(); Assert.AreEqual(3, events.Length); Assert.AreEqual("Start X", events[0].Message); Assert.AreEqual(11, events[0].Id); Assert.AreEqual("Stop X", events[2].Message); Assert.AreEqual(12, events[2].Id); }
public void LogicalThenActivity() { var source = new TraceSource("Tests"); using (var lScope = new LogicalOperationScope(source, "Process C")) { var sample2 = new SampleClass(source); using (var scope = new ActivityScope(source, "Login")) { sample2.TraceEvent(TraceEventType.Verbose, 1, "Logged in!"); } using (var scope = new ActivityScope(source, "Validate")) { //var service = new TracingTests.ServiceReference1.Service1Client("BasicHttpBinding_IService1"); //service.DoWork(); sample2.TraceEvent(TraceEventType.Verbose, 2, "Request is Valid"); } using (var scope = new ActivityScope(source, "Update")) { sample2.TraceEvent(TraceEventType.Verbose, 3, "Record updating"); using (var scope1 = new ActivityScope(source, "COmmit")) { sample2.TraceEvent(TraceEventType.Verbose, 4, "Commit worked"); } } } }
void ServerCall() { var source = new TraceSource("ServerComponent"); using (var lScope = new LogicalOperationScope(source, "Process B")) { var sample2 = new SampleClass(source); sample2.TraceEvent(TraceEventType.Information, 10, "Server Message for the Process"); } }
static void Main(string[] args) { var stopwatch = Stopwatch.StartNew(); // Basic source var source = new TraceSource("SeqFrameworkDiagnostics.Example.Basic"); source.TraceEvent(TraceEventType.Information, (int)ExampleEventId.StartExample, "Hello, {0}, from .NET Framework", Environment.UserName); source.TraceData(TraceEventType.Information, (int)ExampleEventId.DataTrace, "Data Item", 42.80D, Guid.NewGuid()); source.TraceEvent(TraceEventType.Verbose, 0, "a={1} b={0}", "B", "A"); // Detailed source var detailedSource = new TraceSource("SeqFrameworkDiagnostics.Example.Detailed"); detailedSource.TraceEvent(TraceEventType.Warning, (int)ExampleEventId.DetailedWarning, "Sample detailed warning"); // Logical operation stack context (using scope extension) using (var requestScope = new LogicalOperationScope(source, "Request 1234", (int)ExampleEventId.BeginRequest, (int)ExampleEventId.EndRequest, "Begin request", "End request")) { using (var transactionScope = new LogicalOperationScope("Transaction 5678")) { source.TraceEvent(TraceEventType.Information, (int)ExampleEventId.LogicalOperationStackExample, "Sample with operation stack context {0}, {1}, {2}", 42, new DateTimeOffset(1973, 5, 14, 0, 0, 0, TimeSpan.FromHours(10)), "Fnord"); } } // Activity ID & transfers (using scope extension) using (var activityScope = new ActivityScope(source)) { source.TraceEvent(TraceEventType.Information, (int)ExampleEventId.ActivityTransferExample, "Correlation example with activity ID transfer"); } // Fluent interface extensions ITraceLog <ExampleEventId> log = new AssemblyTraceLog <ExampleEventId, Program>(); try { log.Information(ExampleEventId.FluentExample, "Fluent logging API, {0}", Environment.OSVersion); log.Verbose("About to throw exception"); throw new DivideByZeroException(); } catch (Exception ex) { log.Error(ExampleEventId.DivideException, ex, "Ooops!"); } stopwatch.Stop(); log.Verbose("Time {0:'P''T'hh'H'mm'M'ss'.'fff'S'}", stopwatch.Elapsed); log.Information(ExampleEventId.EndExample, "Done"); Console.WriteLine("Done"); Console.ReadKey(); }
public void FinalizerIgnoresContextInterleave() { var traceSource = new TraceSource(MethodBase.GetCurrentMethod().Name, SourceLevels.All); var finalizer = typeof(LogicalOperationScope).GetMethod("Finalize", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod); Trace.CorrelationManager.ActivityId = Guid.Empty; using (var context = new LogicalOperationScope(traceSource, traceSource.Name)) { Trace.CorrelationManager.ActivityId = Guid.NewGuid(); finalizer.Invoke(context, null); Trace.CorrelationManager.ActivityId = Guid.Empty; } }
public static void Main(string[] args) { trace.TraceEvent(TraceEventType.Information, 1001, "Scope example started."); using (var logicalOperationScope = new LogicalOperationScope(string.Format("Transaction={0}", 1))) { using (var activityScope = new ActivityScope(trace, 0, 2001, 0, 3001)) { trace.TraceEvent(TraceEventType.Warning, 4001, "Example warning."); } } trace.TraceEvent(TraceEventType.Information, 8001, "Scope example finished."); Console.ReadLine(); }
public void CannotInterleaveLogicalOperations() { var traceSource = new TraceSource(MethodBase.GetCurrentMethod().Name, SourceLevels.All); var context = new LogicalOperationScope(traceSource, traceSource.Name); Trace.CorrelationManager.LogicalOperationStack.Push(Guid.NewGuid()); var ex = Assert.Throws <InvalidOperationException>(() => context.Dispose()); Assert.Equal(Exceptions.OperationIdModifiedInsideScope, ex.Message); Trace.CorrelationManager.LogicalOperationStack.Pop(); context.Dispose(); }
static void Main(string[] args) { var trace = new TraceSource("TestProgram", SourceLevels.All); trace.Listeners.Add(new ConsoleTraceListener()); //trace.Listeners.Add(new DefaultTraceListener()); Extensions.GlobalSerializer = (obj) => { return("MyDriver:" + obj?.ToString()); }; var driver = new MyDriver(trace); driver = driver.Wrap(); //driver = driver.Wrap((obj) => //{ // var res = JsonConvert.SerializeObject(obj, Formatting.Indented); //Newtonsoft dependency // return res; //}); var resul = driver.AMethod(1, "dos"); driver.ComplexParamsMethod(2, new MyDriver.MyParam() { Val1 = 3, Val2 = "A Val 2" }); trace.TraceInformation("Hello World"); trace.Indent(); trace.TraceInformation("Hello America"); trace.Unindent(); using (var scope = new ActivityScope(trace, "Activity2")) { trace.TraceInformation("Activity 2 stuff"); } trace.TraceInformation("--------------------------------------------"); using (var scope = new ActivityScope(trace, 1, 2, 3, 4, "TransferIn", "Start", "TransferOut", "Stop", "My Activity")) { trace.TraceEvent(TraceEventType.Verbose, 120, "Activity 1"); } using (var logicalScope = new LogicalOperationScope(trace, "Say Goodbye")) { trace.TraceEvent(TraceEventType.Verbose, 123, "Goodbye!"); } }
public void ScopeDefaultMessages() { TraceSource source = new TraceSource("inmemory1Source"); var listener = source.Listeners.OfType<InMemoryTraceListener>().First(); listener.Clear(); using (var scope1 = new LogicalOperationScope(source, "X")) { source.TraceEvent(TraceEventType.Warning, 1, "A"); } var events = listener.GetEvents(); Assert.AreEqual(3, events.Length); Assert.AreEqual("Start operation", events[0].Message); Assert.AreEqual("Stop operation", events[2].Message); }
public void ScopeDefaultMessages() { TraceSource source = new TraceSource("inmemory1Source"); var listener = source.Listeners.OfType <InMemoryTraceListener>().First(); listener.Clear(); using (var scope1 = new LogicalOperationScope(source, "X")) { source.TraceEvent(TraceEventType.Warning, 1, "A"); } var events = listener.GetEvents(); Assert.AreEqual(3, events.Length); Assert.AreEqual("Start operation", events[0].Message); Assert.AreEqual("Stop operation", events[2].Message); }
public void ScopeDefaultMessages() { TraceSource source = new TraceSource("testScope1Source"); var listener = source.Listeners.OfType <TestTraceListener>().First(); listener.MethodCallInformation.Clear(); using (var scope1 = new LogicalOperationScope(source, "X")) { source.TraceEvent(TraceEventType.Warning, 1, "A"); } var events = listener.MethodCallInformation; Assert.AreEqual(3, events.Count); Assert.AreEqual("Start operation", events[0].Message); Assert.AreEqual("Stop operation", events[2].Message); }
public void ScopeCustomMessages() { TraceSource source = new TraceSource("inmemory1Source"); var listener = source.Listeners.OfType<InMemoryTraceListener>().First(); listener.Clear(); using (var scope1 = new LogicalOperationScope(source, "X", 11, 12, "Operation Go", "Done")) { source.TraceEvent(TraceEventType.Warning, 1, "A"); } var events = listener.GetEvents(); Assert.AreEqual(3, events.Length); Assert.AreEqual("Operation Go", events[0].Message); Assert.AreEqual(11, events[0].Id); Assert.AreEqual("Done", events[2].Message); Assert.AreEqual(12, events[2].Id); }
public void ScopeCustomMessages() { TraceSource source = new TraceSource("inmemory1Source"); var listener = source.Listeners.OfType <InMemoryTraceListener>().First(); listener.Clear(); using (var scope1 = new LogicalOperationScope(source, "X", 11, 12, "Operation Go", "Done")) { source.TraceEvent(TraceEventType.Warning, 1, "A"); } var events = listener.GetEvents(); Assert.AreEqual(3, events.Length); Assert.AreEqual("Operation Go", events[0].Message); Assert.AreEqual(11, events[0].Id); Assert.AreEqual("Done", events[2].Message); Assert.AreEqual(12, events[2].Id); }
public static void Main(string[] args) { trace.TraceEvent(TraceEventType.Information, 1001, "Scope example started."); Thread.Sleep(500); using (var logicalOperationScope = new LogicalOperationScope(string.Format("Transaction:{0}", 1))) { Thread.Sleep(500); using (var activityScope = new ActivityScope(trace, 0, 2001, 0, 3001, "Example Transfer In", "Example Start", "Example Transfer Out", "Example Stop", "Example Activity")) { Thread.Sleep(500); trace.TraceEvent(TraceEventType.Warning, 4001, "Example warning."); Thread.Sleep(500); } Thread.Sleep(500); } Thread.Sleep(500); trace.TraceEvent(TraceEventType.Information, 8001, "Scope example finished."); Console.ReadLine(); }
public void ScopeShouldHaveAStackOfValues() { TraceSource source = new TraceSource("inmemory1Source"); var listener = source.Listeners.OfType <InMemoryTraceListener>().First(); listener.Clear(); source.TraceEvent(TraceEventType.Warning, 1, "A"); using (var scope1 = new LogicalOperationScope("X")) { using (var scope2 = new LogicalOperationScope("Y")) { source.TraceEvent(TraceEventType.Warning, 2, "B"); } } source.TraceEvent(TraceEventType.Warning, 3, "C"); var events = listener.GetEvents(); Assert.AreEqual(1, events[0].Id); var logicalOperationStack0 = events[0].GetLogicalOperationStack(); Assert.AreEqual(0, logicalOperationStack0.Length); Assert.AreEqual(2, events[1].Id); var logicalOperationStack1 = events[1].GetLogicalOperationStack(); Assert.AreEqual(2, logicalOperationStack1.Length); Assert.AreEqual("Y", logicalOperationStack1[0]); Assert.AreEqual("X", logicalOperationStack1[1]); Assert.AreEqual(3, events[2].Id); var logicalOperationStack2 = events[2].GetLogicalOperationStack(); Assert.AreEqual(0, logicalOperationStack2.Length); }
public void ScopeManualStartStopMessages() { TraceSource source = new TraceSource("inmemory1Source"); var listener = source.Listeners.OfType<InMemoryTraceListener>().First(); listener.Clear(); var operationId = "X"; using (var scope1 = new LogicalOperationScope(operationId)) { source.TraceEvent(TraceEventType.Start, 11, "Start {0}", operationId); source.TraceEvent(TraceEventType.Warning, 1, "A"); source.TraceEvent(TraceEventType.Stop, 12, "Stop {0}", operationId); } var events = listener.GetEvents(); Assert.AreEqual(3, events.Length); Assert.AreEqual("Start X", events[0].Message); Assert.AreEqual(11, events[0].Id); Assert.AreEqual("Stop X", events[2].Message); Assert.AreEqual(12, events[2].Id); }
public void ScopeShouldHaveAStackOfValues() { TraceSource source = new TraceSource("inmemory1Source"); var listener = source.Listeners.OfType<InMemoryTraceListener>().First(); listener.Clear(); source.TraceEvent(TraceEventType.Warning, 1, "A"); using (var scope1 = new LogicalOperationScope("X")) { using (var scope2 = new LogicalOperationScope("Y")) { source.TraceEvent(TraceEventType.Warning, 2, "B"); } } source.TraceEvent(TraceEventType.Warning, 3, "C"); var events = listener.GetEvents(); Assert.AreEqual(1, events[0].Id); var logicalOperationStack0 = events[0].GetLogicalOperationStack(); Assert.AreEqual(0, logicalOperationStack0.Length); Assert.AreEqual(2, events[1].Id); var logicalOperationStack1 = events[1].GetLogicalOperationStack(); Assert.AreEqual(2, logicalOperationStack1.Length); Assert.AreEqual("Y", logicalOperationStack1[0]); Assert.AreEqual("X", logicalOperationStack1[1]); Assert.AreEqual(3, events[2].Id); var logicalOperationStack2 = events[2].GetLogicalOperationStack(); Assert.AreEqual(0, logicalOperationStack2.Length); }
public void CannotInterleaveLogicalOperations() { var traceSource = new TraceSource(MethodBase.GetCurrentMethod().Name, SourceLevels.All); var context = new LogicalOperationScope(traceSource, traceSource.Name); Trace.CorrelationManager.LogicalOperationStack.Push(Guid.NewGuid()); var ex = Assert.Throws<InvalidOperationException>(() => context.Dispose()); Assert.Equal(Exceptions.OperationIdModifiedInsideScope, ex.Message); Trace.CorrelationManager.LogicalOperationStack.Pop(); context.Dispose(); }