public void CanDisposeRepeatedly()
            {
                var traceSource = new TraceSource(MethodBase.GetCurrentMethod().Name, SourceLevels.All);

                using (var context = new LogicalOperationScope(traceSource, traceSource.Name))
                    context.Dispose();
            }
示例#2
0
            public void CanDisposeRepeatedly()
            {
                var traceSource = new TraceSource(MethodBase.GetCurrentMethod().Name, SourceLevels.All);

                using (var context = new LogicalOperationScope(traceSource, traceSource.Name))
                    context.Dispose();
            }
示例#3
0
        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();
            }
        }
示例#4
0
            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());
            }
示例#5
0
文件: Service1.cs 项目: xsolon/if
        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 ReturnName()
            {
                var traceSource = new TraceSource(MethodBase.GetCurrentMethod().Name, SourceLevels.All);

                using (var context = new LogicalOperationScope(traceSource, traceSource.Name))
                    Assert.Equal(traceSource.Name, context.ToString());
            }
示例#9
0
        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");
                    }
                }
            }
        }
示例#10
0
        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");
            }
        }
示例#11
0
        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();
        }
示例#12
0
            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;
                }
            }
示例#13
0
 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();
 }
示例#14
0
 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();
 }
示例#15
0
            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();
            }
示例#16
0
文件: Program.cs 项目: xsolon/if
        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);
        }
示例#22
0
 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 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 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();
            }