Example #1
0
        public static void Main(string[] args)
        {
            var originalPrincipal = Thread.CurrentPrincipal;

            try
            {
                Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity("User1"), new string[0]);
                Trace.CorrelationManager.StartLogicalOperation("Started=true");
                Trace.CorrelationManager.StartLogicalOperation("UserId=1");
                Trace.CorrelationManager.ActivityId = Guid.NewGuid();
                // Trace Data
                var data = new object[] { "TraceData", TimeZoneInfo.Local.BaseUtcOffset };
                trace.TraceData(TraceEventType.Verbose, 6001, data);
                // Trace Transfer
                var newActivityId = Guid.NewGuid();
                trace.TraceTransfer(0, "TraceTransfer", newActivityId);
                Trace.CorrelationManager.ActivityId = newActivityId;
                // Trace Event
                Thread.CurrentThread.Name = "MyThread";
                trace.TraceEvent(TraceEventType.Information, 7001, "TraceEvent");
            }
            finally
            {
                Thread.CurrentPrincipal = originalPrincipal;
            }
            Console.ReadLine();
        }
        private void StartScope()
        {
            // Log Transfer In (on original activity)
            Guid newActivity = Guid.NewGuid();

            if (_source != null)
            {
                _source.TraceTransfer(_transferInId, _transferInMessage, newActivity);
            }

            // Change to scope ActivityId
            Trace.CorrelationManager.ActivityId = newActivity;

            // Log Start Message (first message on scope activity)
            if (_source != null)
            {
                if (_activityName == null)
                {
                    _source.TraceEvent(TraceEventType.Start, _startId, _startMessage);
                }
                else
                {
                    //var xml = string.Format(TraceRecordXmlTemplate,
                    //    SecurityElement.Escape(_startMessage),
                    //    SecurityElement.Escape(AppDomain.CurrentDomain.FriendlyName),
                    //    SecurityElement.Escape(_activityName)
                    //);
                    var xml = TraceRecordXmlTemplate;
                    var doc = new XmlDocument();
                    doc.LoadXml(xml);
                    doc.ChildNodes[0].ChildNodes[1].InnerText = _startMessage;
                    doc.ChildNodes[0].ChildNodes[2].InnerText = AppDomain.CurrentDomain.FriendlyName;
                    doc.ChildNodes[0].ChildNodes[3].ChildNodes[0].InnerText = _activityName;
                    _source.TraceData(TraceEventType.Start, _startId, doc.CreateNavigator());
                }
            }
        }