コード例 #1
0
        public void WriteTraceSource(ref EventDescriptor eventDescriptor, string description, TracePayload payload)
        {
            if (this.TracingEnabled)
            {
                XPathNavigator navigator = null;
                try
                {
                    string msdnTraceCode;
                    int    legacyEventId;
                    EtwDiagnosticTrace.GenerateLegacyTraceCode(ref eventDescriptor, out msdnTraceCode, out legacyEventId);

                    string      traceString   = BuildTrace(ref eventDescriptor, description, payload, msdnTraceCode);
                    XmlDocument traceDocument = new XmlDocument();
                    traceDocument.LoadXml(traceString);
                    navigator = traceDocument.CreateNavigator();
                    this.TraceSource.TraceData(TraceLevelHelper.GetTraceEventType(eventDescriptor.Level, eventDescriptor.Opcode), legacyEventId, navigator);

                    if (this.CalledShutdown)
                    {
                        this.TraceSource.Flush();
                    }
                }
                catch (Exception exception)
                {
                    if (Fx.IsFatal(exception))
                    {
                        throw;
                    }

                    LogTraceFailure(navigator == null ? string.Empty : navigator.ToString(), exception);
                }
            }
        }
コード例 #2
0
ファイル: TraceCore.Designer.cs プロジェクト: nickchal/pash
		internal static void ActionItemScheduled(EtwDiagnosticTrace trace, EventTraceActivity eventTraceActivity)
		{
			TracePayload serializedPayload = trace.GetSerializedPayload(null, null, null);
			if (TraceCore.IsEtwEventEnabled(trace, 13))
			{
				TraceCore.WriteEtwEvent(trace, 13, eventTraceActivity, serializedPayload.AppDomainFriendlyName);
			}
		}
コード例 #3
0
 public void Event(int eventId, TraceEventLevel traceEventLevel, TraceChannel channel, string description)
 {
     if (this.TracingEnabled)
     {
         EventDescriptor eventDescriptor = EtwDiagnosticTrace.GetEventDescriptor(eventId, channel, traceEventLevel);
         this.Event(ref eventDescriptor, description);
     }
 }
コード例 #4
0
ファイル: FxTrace.cs プロジェクト: xier2012/wcf
        private static EtwDiagnosticTrace InitializeTracing()
        {
            //Etw tracing is switched off by not enabling the session
            s_etwProviderId = EtwDiagnosticTrace.DefaultEtwProviderId;

            EtwDiagnosticTrace trace = new EtwDiagnosticTrace(baseEventSourceName, s_etwProviderId);

            return trace;
        }
コード例 #5
0
 /// <summary>
 /// Gets trace definition like: AppDomain unloading. AppDomain.FriendlyName {0}, ProcessName {1}, ProcessId {2}.
 /// Event description ID=57393, Level=informational, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="appdomainName">Parameter 0 for event: AppDomain unloading. AppDomain.FriendlyName {0}, ProcessName {1}, ProcessId {2}.</param>
 /// <param name="processName">Parameter 1 for event: AppDomain unloading. AppDomain.FriendlyName {0}, ProcessName {1}, ProcessId {2}.</param>
 /// <param name="processId">Parameter 2 for event: AppDomain unloading. AppDomain.FriendlyName {0}, ProcessName {1}, ProcessId {2}.</param>
 internal static void AppDomainUnload(EtwDiagnosticTrace trace, string appdomainName, string processName, string processId)
 {
     TracePayload payload = trace.GetSerializedPayload(null, null, null);
     if (TraceCore.IsEtwEventEnabled(trace, 0))
     {
         TraceCore.WriteEtwEvent(trace, 0, null, appdomainName, processName, processId, payload.AppDomainFriendlyName);
     }
     if (trace.ShouldTraceToTraceSource(TraceEventLevel.Informational))
     {
         string description = string.Format(Culture, ResourceManager.GetString("AppDomainUnload", Culture), appdomainName, processName, processId);
         TraceCore.WriteTraceSource(trace, 0, description, payload);
     }
 }
コード例 #6
0
        protected override void OnUnhandledException(Exception exception)
        {
            string             str;
            EtwDiagnosticTrace etwDiagnosticTrace = this;

            if (exception != null)
            {
                str = exception.ToString();
            }
            else
            {
                str = string.Empty;
            }
            TraceCore.UnhandledException(etwDiagnosticTrace, str, exception);
        }
コード例 #7
0
        static string BuildTrace(ref EventDescriptor eventDescriptor, string description, TracePayload payload, string msdnTraceCode)
        {
            StringBuilder sb = StringBuilderPool.Take();

            try
            {
                using (StringWriter stringWriter = new StringWriter(sb, CultureInfo.CurrentCulture))
                {
                    using (XmlTextWriter writer = new XmlTextWriter(stringWriter))
                    {
                        writer.WriteStartElement(DiagnosticStrings.TraceRecordTag);
                        writer.WriteAttributeString(DiagnosticStrings.NamespaceTag, EtwDiagnosticTrace.TraceRecordVersion);
                        writer.WriteAttributeString(DiagnosticStrings.SeverityTag,
                                                    TraceLevelHelper.LookupSeverity((TraceEventLevel)eventDescriptor.Level, (TraceEventOpcode)eventDescriptor.Opcode));
                        writer.WriteAttributeString(DiagnosticStrings.ChannelTag, EtwDiagnosticTrace.LookupChannel((TraceChannel)eventDescriptor.Channel));

                        writer.WriteElementString(DiagnosticStrings.TraceCodeTag, msdnTraceCode);
                        writer.WriteElementString(DiagnosticStrings.DescriptionTag, description);
                        writer.WriteElementString(DiagnosticStrings.AppDomain, payload.AppDomainFriendlyName);

                        if (!string.IsNullOrEmpty(payload.EventSource))
                        {
                            writer.WriteElementString(DiagnosticStrings.SourceTag, payload.EventSource);
                        }

                        if (!string.IsNullOrEmpty(payload.ExtendedData))
                        {
                            writer.WriteRaw(payload.ExtendedData);
                        }

                        if (!string.IsNullOrEmpty(payload.SerializedException))
                        {
                            writer.WriteRaw(payload.SerializedException);
                        }

                        writer.WriteEndElement();
                        writer.Flush();
                        stringWriter.Flush();

                        return(sb.ToString());
                    }
                }
            }
            finally
            {
                StringBuilderPool.Return(sb);
            }
        }
コード例 #8
0
        public TracePayload GetSerializedPayload(object source, TraceRecord traceRecord, Exception exception, bool getServiceReference)
        {
            string str         = null;
            string str1        = null;
            string traceString = null;

            if (source != null)
            {
                str = DiagnosticTraceBase.CreateSourceString(source);
            }
            if (traceRecord != null)
            {
                StringBuilder stringBuilder = EtwDiagnosticTrace.StringBuilderPool.Take();
                try
                {
                    using (StringWriter stringWriter = new StringWriter(stringBuilder, CultureInfo.CurrentCulture))
                    {
                        using (XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter))
                        {
                            xmlTextWriter.WriteStartElement("ExtendedData");
                            traceRecord.WriteTo(xmlTextWriter);
                            xmlTextWriter.WriteEndElement();
                            xmlTextWriter.Flush();
                            stringWriter.Flush();
                            str1 = stringBuilder.ToString();
                        }
                    }
                }
                finally
                {
                    EtwDiagnosticTrace.StringBuilderPool.Return(stringBuilder);
                }
            }
            if (exception != null)
            {
                traceString = EtwDiagnosticTrace.ExceptionToTraceString(exception, 0x7000);
            }
            if (!getServiceReference || EtwDiagnosticTrace.traceAnnotation == null)
            {
                return(new TracePayload(traceString, str, DiagnosticTraceBase.AppDomainFriendlyName, str1, string.Empty));
            }
            else
            {
                return(new TracePayload(traceString, str, DiagnosticTraceBase.AppDomainFriendlyName, str1, EtwDiagnosticTrace.traceAnnotation()));
            }
        }
コード例 #9
0
        public void WriteTraceSource(ref EventDescriptor eventDescriptor, string description, TracePayload payload)
        {
            string str = null;
            int    num = 0;
            string empty;

            if (base.TracingEnabled)
            {
                XPathNavigator xPathNavigator = null;
                try
                {
                    EtwDiagnosticTrace.GenerateLegacyTraceCode(ref eventDescriptor, out str, out num);
                    string      str1        = EtwDiagnosticTrace.BuildTrace(ref eventDescriptor, description, payload, str);
                    XmlDocument xmlDocument = new XmlDocument();
                    xmlDocument.LoadXml(str1);
                    xPathNavigator = xmlDocument.CreateNavigator();
                    base.TraceSource.TraceData(TraceLevelHelper.GetTraceEventType(eventDescriptor.Level, eventDescriptor.Opcode), num, xPathNavigator);
                    if (base.CalledShutdown)
                    {
                        base.TraceSource.Flush();
                    }
                }
                catch (Exception exception1)
                {
                    Exception exception = exception1;
                    if (!Fx.IsFatal(exception))
                    {
                        EtwDiagnosticTrace etwDiagnosticTrace = this;
                        if (xPathNavigator == null)
                        {
                            empty = string.Empty;
                        }
                        else
                        {
                            empty = xPathNavigator.ToString();
                        }
                        etwDiagnosticTrace.LogTraceFailure(empty, exception);
                    }
                    else
                    {
                        throw;
                    }
                }
            }
        }
コード例 #10
0
        public void TraceTransfer(Guid newId)
        {
            string empty;
            Guid   activityId = DiagnosticTraceBase.ActivityId;

            if (newId != activityId)
            {
                try
                {
                    if (base.HaveListeners)
                    {
                        base.TraceSource.TraceTransfer(0, null, newId);
                    }
                    if (this.IsEtwEventEnabled(ref EtwDiagnosticTrace.transferEventDescriptor))
                    {
                        EtwProvider        etwProvider            = this.etwProvider;
                        EventDescriptor    eventDescriptorPointer = EtwDiagnosticTrace.transferEventDescriptor;
                        EventTraceActivity eventTraceActivity     = new EventTraceActivity(activityId, false);
                        Guid guid = newId;
                        if (EtwDiagnosticTrace.traceAnnotation == null)
                        {
                            empty = string.Empty;
                        }
                        else
                        {
                            empty = EtwDiagnosticTrace.traceAnnotation();
                        }
                        etwProvider.WriteTransferEvent(eventDescriptorPointer, eventTraceActivity, guid, empty, DiagnosticTraceBase.AppDomainFriendlyName);
                    }
                }
                catch (Exception exception1)
                {
                    Exception exception = exception1;
                    if (!Fx.IsFatal(exception))
                    {
                        base.LogTraceFailure(null, exception);
                    }
                    else
                    {
                        throw;
                    }
                }
            }
        }
コード例 #11
0
        private static string BuildTrace(ref EventDescriptor eventDescriptor, string description, TracePayload payload, string msdnTraceCode)
        {
            string        str;
            StringBuilder stringBuilder = EtwDiagnosticTrace.StringBuilderPool.Take();

            try
            {
                using (StringWriter stringWriter = new StringWriter(stringBuilder, CultureInfo.CurrentCulture))
                {
                    using (XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter))
                    {
                        xmlTextWriter.WriteStartElement("TraceRecord");
                        xmlTextWriter.WriteAttributeString("xmlns", "http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord");
                        xmlTextWriter.WriteAttributeString("Severity", TraceLevelHelper.LookupSeverity((TraceEventLevel)eventDescriptor.Level, (TraceEventOpcode)eventDescriptor.Opcode));
                        xmlTextWriter.WriteAttributeString("Channel", EtwDiagnosticTrace.LookupChannel((TraceChannel)eventDescriptor.Channel));
                        xmlTextWriter.WriteElementString("TraceIdentifier", msdnTraceCode);
                        xmlTextWriter.WriteElementString("Description", description);
                        xmlTextWriter.WriteElementString("AppDomain", payload.AppDomainFriendlyName);
                        if (!string.IsNullOrEmpty(payload.EventSource))
                        {
                            xmlTextWriter.WriteElementString("Source", payload.EventSource);
                        }
                        if (!string.IsNullOrEmpty(payload.ExtendedData))
                        {
                            xmlTextWriter.WriteRaw(payload.ExtendedData);
                        }
                        if (!string.IsNullOrEmpty(payload.SerializedException))
                        {
                            xmlTextWriter.WriteRaw(payload.SerializedException);
                        }
                        xmlTextWriter.WriteEndElement();
                        xmlTextWriter.Flush();
                        stringWriter.Flush();
                        str = stringBuilder.ToString();
                    }
                }
            }
            finally
            {
                EtwDiagnosticTrace.StringBuilderPool.Return(stringBuilder);
            }
            return(str);
        }
コード例 #12
0
        private static string GetInnerException(Exception exception, int remainingLength, int remainingAllowedRecursionDepth)
        {
            string str;

            if (remainingAllowedRecursionDepth >= 1)
            {
                StringBuilder stringBuilder = EtwDiagnosticTrace.StringBuilderPool.Take();
                try
                {
                    using (StringWriter stringWriter = new StringWriter(stringBuilder, CultureInfo.CurrentCulture))
                    {
                        using (XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter))
                        {
                            if (EtwDiagnosticTrace.WriteStartElement(xmlTextWriter, "InnerException", ref remainingLength))
                            {
                                EtwDiagnosticTrace.WriteExceptionToTraceString(xmlTextWriter, exception.InnerException, remainingLength, remainingAllowedRecursionDepth);
                                xmlTextWriter.WriteEndElement();
                                xmlTextWriter.Flush();
                                stringWriter.Flush();
                                str = stringBuilder.ToString();
                            }
                            else
                            {
                                str = null;
                            }
                        }
                    }
                }
                finally
                {
                    EtwDiagnosticTrace.StringBuilderPool.Return(stringBuilder);
                }
                return(str);
            }
            else
            {
                return(null);
            }
        }
コード例 #13
0
        internal static string ExceptionToTraceString(Exception exception, int maxTraceStringLength)
        {
            string        str;
            StringBuilder stringBuilder = EtwDiagnosticTrace.StringBuilderPool.Take();

            try
            {
                using (StringWriter stringWriter = new StringWriter(stringBuilder, CultureInfo.CurrentCulture))
                {
                    using (XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter))
                    {
                        EtwDiagnosticTrace.WriteExceptionToTraceString(xmlTextWriter, exception, maxTraceStringLength, 64);
                        xmlTextWriter.Flush();
                        stringWriter.Flush();
                        str = stringBuilder.ToString();
                    }
                }
            }
            finally
            {
                EtwDiagnosticTrace.StringBuilderPool.Return(stringBuilder);
            }
            return(str);
        }
コード例 #14
0
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=104, Level=Informational, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool ActivityScheduledRecordIsEnabled(EtwDiagnosticTrace trace)
 {
     return EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 0);
 }
コード例 #15
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=132, Level=verbose, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool BufferPoolChangeQuotaIsEnabled(EtwDiagnosticTrace trace)
 {
     return WcfEventSource.Instance.BufferPoolChangeQuotaIsEnabled();
 }
コード例 #16
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=57396, Level=warning, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool ThrowingExceptionIsEnabled(EtwDiagnosticTrace trace)
 {
     return WcfEventSource.Instance.ThrowingExceptionIsEnabled();
 }
コード例 #17
0
        public void TraceTransfer(Guid newId)
        {
            Guid oldId = EtwDiagnosticTrace.ActivityId;

            if (newId != oldId)
            {
                try
                {
                    if (this.HaveListeners)
                    {
                        this.TraceSource.TraceTransfer(0, null, newId);
                    }
                    //also emit to ETW
                    if (this.IsEtwEventEnabled(ref EtwDiagnosticTrace.transferEventDescriptor, false))
                    {
                        this.etwProvider.WriteTransferEvent(ref EtwDiagnosticTrace.transferEventDescriptor, new EventTraceActivity(oldId), newId,
                                                            EtwDiagnosticTrace.traceAnnotation == null ? string.Empty : EtwDiagnosticTrace.traceAnnotation(),
                                                            DiagnosticTraceBase.AppDomainFriendlyName);
                    }
                }
                catch (Exception e)
                {
                    if (Fx.IsFatal(e))
                    {
                        throw;
                    }

                    LogTraceFailure(null, e);
                }
            }
        }
コード例 #18
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Gets trace definition like: Throwing an exception. Source: {0}. Exception details: {1}
 /// Event description ID=57407, Level=verbose, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="param0">Parameter 0 for event: Throwing an exception. Source: {0}. Exception details: {1}</param>
 /// <param name="param1">Parameter 1 for event: Throwing an exception. Source: {0}. Exception details: {1}</param>
 /// <param name="exception">Exception associated with the event</param>
 internal static void ThrowingExceptionVerbose(EtwDiagnosticTrace trace, string param0, string param1, System.Exception exception)
 {
     string serializedException = EtwDiagnosticTrace.ExceptionToTraceString(exception, int.MaxValue);
     WcfEventSource.Instance.ThrowingExceptionVerbose(param0, param1, serializedException);
 }
コード例 #19
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Gets trace definition like: Handling an exception.  Exception details: {0}
 /// Event description ID=57394, Level=informational, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="param0">Parameter 0 for event: Handling an exception.  Exception details: {0}</param>
 /// <param name="exception">Exception associated with the event</param>
 internal static void HandledException(EtwDiagnosticTrace trace, string param0, System.Exception exception)
 {
     string serializedException = EtwDiagnosticTrace.ExceptionToTraceString(exception, int.MaxValue);
     WcfEventSource.Instance.HandledException(param0, serializedException);
 }
コード例 #20
0
 /// <summary>
 /// Gets trace definition like: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}
 /// Event description ID=105, Level=Warning, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="eventTraceActivity">The event trace activity</param>
 /// <param name="InstanceId">Parameter 0 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="RecordNumber">Parameter 1 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="EventTime">Parameter 2 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="FaultSourceActivityName">Parameter 3 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="FaultSourceActivityId">Parameter 4 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="FaultSourceActivityInstanceId">Parameter 5 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="FaultSourceActivityTypeName">Parameter 6 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="FaultHandlerActivityName">Parameter 7 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="FaultHandlerActivityId">Parameter 8 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="FaultHandlerActivityInstanceId">Parameter 9 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="FaultHandlerActivityTypeName">Parameter 10 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="Fault">Parameter 11 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="IsFaultSource">Parameter 12 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="Annotations">Parameter 13 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="ProfileName">Parameter 14 for event: TrackRecord = FaultPropagationRecord, InstanceID={0}, RecordNumber={1}, EventTime={2}, FaultSourceActivityName={3}, FaultSourceActivityId={4}, FaultSourceActivityInstanceId={5}, FaultSourceActivityTypeName={6}, FaultHandlerActivityName={7},  FaultHandlerActivityId = {8}, FaultHandlerActivityInstanceId ={9}, FaultHandlerActivityTypeName={10}, Fault={11}, IsFaultSource={12}, Annotations={13}, ProfileName = {14}</param>
 /// <param name="reference">Reference (e.g. service reference) to be added to trace</param>
 internal static bool FaultPropagationRecord(
             EtwDiagnosticTrace trace, 
             System.Runtime.Diagnostics.EventTraceActivity eventTraceActivity, 
             System.Guid InstanceId, 
             long RecordNumber, 
             long EventTime, 
             string FaultSourceActivityName, 
             string FaultSourceActivityId, 
             string FaultSourceActivityInstanceId, 
             string FaultSourceActivityTypeName, 
             string FaultHandlerActivityName, 
             string FaultHandlerActivityId, 
             string FaultHandlerActivityInstanceId, 
             string FaultHandlerActivityTypeName, 
             string Fault, 
             bool IsFaultSource, 
             string Annotations, 
             string ProfileName, 
             string reference)
 {
     bool etwTraceResult = true;
     TracePayload payload = trace.GetSerializedPayload(null, null, null);
     if (EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 4))
     {
         etwTraceResult = EtwTrackingParticipantTrackRecords.WriteEtwEvent(trace, 4, eventTraceActivity, InstanceId, RecordNumber, EventTime, FaultSourceActivityName, FaultSourceActivityId, FaultSourceActivityInstanceId, FaultSourceActivityTypeName, FaultHandlerActivityName, FaultHandlerActivityId, FaultHandlerActivityInstanceId, FaultHandlerActivityTypeName, Fault, IsFaultSource, Annotations, ProfileName, reference, payload.AppDomainFriendlyName);
     }
     return etwTraceResult;
 }
コード例 #21
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=134, Level=verbose, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool ActionItemCallbackInvokedIsEnabled(EtwDiagnosticTrace trace)
 {
     return WcfEventSource.Instance.ActionItemCallbackInvokedIsEnabled();
 }
コード例 #22
0
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=119, Level=Informational, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool WorkflowInstanceUpdatedRecordIsEnabled(EtwDiagnosticTrace trace)
 {
     return EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 18);
 }
コード例 #23
0
 /// <summary>
 /// Gets trace definition like: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}
 /// Event description ID=119, Level=Informational, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="eventTraceActivity">The event trace activity</param>
 /// <param name="InstanceId">Parameter 0 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="RecordNumber">Parameter 1 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="EventTime">Parameter 2 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="ActivityDefinitionId">Parameter 3 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="State">Parameter 4 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="OriginalDefinitionIdentity">Parameter 5 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="UpdatedDefinitionIdentity">Parameter 6 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="Annotations">Parameter 7 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="ProfileName">Parameter 8 for event: TrackRecord= WorkflowInstanceUpdatedRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, State = {4}, OriginalDefinitionIdentity = {5}, UpdatedDefinitionIdentity = {6}, Annotations = {7}, ProfileName = {8}</param>
 /// <param name="reference">Reference (e.g. service reference) to be added to trace</param>
 internal static bool WorkflowInstanceUpdatedRecord(EtwDiagnosticTrace trace, System.Runtime.Diagnostics.EventTraceActivity eventTraceActivity, System.Guid InstanceId, long RecordNumber, long EventTime, string ActivityDefinitionId, string State, string OriginalDefinitionIdentity, string UpdatedDefinitionIdentity, string Annotations, string ProfileName, string reference)
 {
     bool etwTraceResult = true;
     TracePayload payload = trace.GetSerializedPayload(null, null, null);
     if (EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 18))
     {
         etwTraceResult = EtwTrackingParticipantTrackRecords.WriteEtwEvent(trace, 18, eventTraceActivity, InstanceId, RecordNumber, EventTime, ActivityDefinitionId, State, OriginalDefinitionIdentity, UpdatedDefinitionIdentity, Annotations, ProfileName, reference, payload.AppDomainFriendlyName);
     }
     return etwTraceResult;
 }
コード例 #24
0
 /// <summary>
 /// Gets trace definition like: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}
 /// Event description ID=118, Level=Error, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="eventTraceActivity">The event trace activity</param>
 /// <param name="InstanceId">Parameter 0 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="RecordNumber">Parameter 1 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="EventTime">Parameter 2 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="ActivityDefinitionId">Parameter 3 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="SourceName">Parameter 4 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="SourceId">Parameter 5 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="SourceInstanceId">Parameter 6 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="SourceTypeName">Parameter 7 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="Exception">Parameter 8 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="Annotations">Parameter 9 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="ProfileName">Parameter 10 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="WorkflowDefinitionIdentity">Parameter 11 for event: TrackRecord = WorkflowInstanceUnhandledExceptionRecord, InstanceID = {0}, RecordNumber = {1}, EventTime = {2}, ActivityDefinitionId = {3}, SourceName = {4}, SourceId = {5}, SourceInstanceId = {6}, SourceTypeName={7}, Exception={8},  Annotations= {9}, ProfileName = {10}, WorkflowDefinitionIdentity = {11}</param>
 /// <param name="reference">Reference (e.g. service reference) to be added to trace</param>
 internal static bool WorkflowInstanceUnhandledExceptionRecordWithId(EtwDiagnosticTrace trace, System.Runtime.Diagnostics.EventTraceActivity eventTraceActivity, System.Guid InstanceId, long RecordNumber, long EventTime, string ActivityDefinitionId, string SourceName, string SourceId, string SourceInstanceId, string SourceTypeName, string Exception, string Annotations, string ProfileName, string WorkflowDefinitionIdentity, string reference)
 {
     bool etwTraceResult = true;
     TracePayload payload = trace.GetSerializedPayload(null, null, null);
     if (EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 17))
     {
         etwTraceResult = EtwTrackingParticipantTrackRecords.WriteEtwEvent(trace, 17, eventTraceActivity, InstanceId, RecordNumber, EventTime, ActivityDefinitionId, SourceName, SourceId, SourceInstanceId, SourceTypeName, Exception, Annotations, ProfileName, WorkflowDefinitionIdentity, reference, payload.AppDomainFriendlyName);
     }
     return etwTraceResult;
 }
コード例 #25
0
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=118, Level=Error, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool WorkflowInstanceUnhandledExceptionRecordWithIdIsEnabled(EtwDiagnosticTrace trace)
 {
     return EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 17);
 }
コード例 #26
0
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=116, Level=Informational, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool WorkflowInstanceSuspendedRecordWithIdIsEnabled(EtwDiagnosticTrace trace)
 {
     return EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 15);
 }
コード例 #27
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Gets trace definition like: BufferPool of size {0}, changing quota by {1}.
 /// Event description ID=132, Level=verbose, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="PoolSize">Parameter 0 for event: BufferPool of size {0}, changing quota by {1}.</param>
 /// <param name="Delta">Parameter 1 for event: BufferPool of size {0}, changing quota by {1}.</param>
 internal static void BufferPoolChangeQuota(EtwDiagnosticTrace trace, int PoolSize, int Delta)
 {
     WcfEventSource.Instance.BufferPoolChangeQuota(PoolSize, Delta);
 }
コード例 #28
0
        private static void GenerateLegacyTraceCode(ref EventDescriptor eventDescriptor, out string msdnTraceCode, out int legacyEventId)
        {
            int eventId;
            int num = eventDescriptor.EventId;

            switch (num)
            {
            case 0xe031:
            {
                msdnTraceCode = EtwDiagnosticTrace.GenerateMsdnTraceCode("System.ServiceModel.Diagnostics", "AppDomainUnload");
                legacyEventId = 0x20001;
                return;
            }

            case 0xe032:
            case 0xe03c:
            case 0xe03d:
            case 0xe03e:
            {
                msdnTraceCode = EtwDiagnosticTrace.GenerateMsdnTraceCode("System.ServiceModel.Diagnostics", "TraceHandledException");
                legacyEventId = 0x20004;
                return;
            }

            case 0xe033:
            case 0xe036:
            case 0xe037:
            case 0xe038:
            case 0xe039:
            case 0xe03a:
            case 0xe03b:
            {
                eventId       = eventDescriptor.EventId;
                msdnTraceCode = eventId.ToString(CultureInfo.InvariantCulture);
                legacyEventId = eventDescriptor.EventId;
                return;
            }

            case 0xe034:
            case 0xe03f:
            {
                msdnTraceCode = EtwDiagnosticTrace.GenerateMsdnTraceCode("System.ServiceModel.Diagnostics", "ThrowingException");
                legacyEventId = 0x20003;
                return;
            }

            case 0xe035:
            {
                msdnTraceCode = EtwDiagnosticTrace.GenerateMsdnTraceCode("System.ServiceModel.Diagnostics", "UnhandledException");
                legacyEventId = 0x20005;
                return;
            }

            default:
            {
                eventId       = eventDescriptor.EventId;
                msdnTraceCode = eventId.ToString(CultureInfo.InvariantCulture);
                legacyEventId = eventDescriptor.EventId;
                return;
            }
            }
        }
コード例 #29
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=133, Level=verbose, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool ActionItemScheduledIsEnabled(EtwDiagnosticTrace trace)
 {
     return WcfEventSource.Instance.ActionItemScheduledIsEnabled();
 }
コード例 #30
0
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=105, Level=Warning, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool FaultPropagationRecordIsEnabled(EtwDiagnosticTrace trace)
 {
     return EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 4);
 }
コード例 #31
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Gets trace definition like: IO Thread scheduler callback invoked.
 /// Event description ID=134, Level=verbose, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="eventTraceActivity">The event trace activity</param>
 internal static void ActionItemCallbackInvoked(EtwDiagnosticTrace trace, System.Runtime.Diagnostics.EventTraceActivity eventTraceActivity)
 {
     WcfEventSource.Instance.ActionItemCallbackInvoked();
 }
コード例 #32
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=57403, Level=warning, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool TraceCodeEventLogWarningIsEnabled(EtwDiagnosticTrace trace)
 {
     return WcfEventSource.Instance.TraceCodeEventLogWarningIsEnabled();
 }
コード例 #33
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=57394, Level=informational, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool HandledExceptionIsEnabled(EtwDiagnosticTrace trace)
 {
     return WcfEventSource.Instance.HandledExceptionIsEnabled();
 }
コード例 #34
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Gets trace definition like: Wrote to the EventLog.
 /// Event description ID=57403, Level=warning, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="traceRecord">Extended data (TraceRecord) for the event</param>
 internal static void TraceCodeEventLogWarning(EtwDiagnosticTrace trace, TraceRecord traceRecord)
 {
     WcfEventSource.Instance.TraceCodeEventLogWarning(traceRecord.EventId);
 }
コード例 #35
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Gets trace definition like: An unexpected failure occurred. Applications should not attempt to handle this error. For diagnostic purposes, this English message is associated with the failure: {0}.
 /// Event description ID=57395, Level=error, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="param0">Parameter 0 for event: An unexpected failure occurred. Applications should not attempt to handle this error. For diagnostic purposes, this English message is associated with the failure: {0}.</param>
 internal static void ShipAssertExceptionMessage(EtwDiagnosticTrace trace, string param0)
 {
     WcfEventSource.Instance.ShipAssertExceptionMessage(param0);
 }
コード例 #36
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=131, Level=verbose, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool BufferPoolAllocationIsEnabled(EtwDiagnosticTrace trace)
 {
     return WcfEventSource.Instance.BufferPoolAllocationIsEnabled();
 }
コード例 #37
0
 private static void WriteExceptionToTraceString(XmlTextWriter xml, Exception exception, int remainingLength, int remainingAllowedRecursionDepth)
 {
     if (remainingAllowedRecursionDepth >= 1)
     {
         if (EtwDiagnosticTrace.WriteStartElement(xml, "Exception", ref remainingLength))
         {
             try
             {
                 List <Tuple <string, string> > tuples = new List <Tuple <string, string> >();
                 tuples.Add(new Tuple <string, string>("ExceptionType", DiagnosticTraceBase.XmlEncode(exception.GetType().AssemblyQualifiedName)));
                 tuples.Add(new Tuple <string, string>("Message", DiagnosticTraceBase.XmlEncode(exception.Message)));
                 tuples.Add(new Tuple <string, string>("StackTrace", DiagnosticTraceBase.XmlEncode(DiagnosticTraceBase.StackTraceString(exception))));
                 tuples.Add(new Tuple <string, string>("ExceptionString", DiagnosticTraceBase.XmlEncode(exception.ToString())));
                 IList <Tuple <string, string> > tuples1 = tuples;
                 Win32Exception win32Exception           = exception as Win32Exception;
                 if (win32Exception != null)
                 {
                     int nativeErrorCode = win32Exception.NativeErrorCode;
                     tuples1.Add(new Tuple <string, string>("NativeErrorCode", nativeErrorCode.ToString("X", CultureInfo.InvariantCulture)));
                 }
                 foreach (Tuple <string, string> tuple in tuples1)
                 {
                     if (EtwDiagnosticTrace.WriteXmlElementString(xml, tuple.Item1, tuple.Item2, ref remainingLength))
                     {
                         continue;
                     }
                     return;
                 }
                 if (exception.Data != null && exception.Data.Count > 0)
                 {
                     string exceptionData = EtwDiagnosticTrace.GetExceptionData(exception);
                     if (exceptionData.Length < remainingLength)
                     {
                         xml.WriteRaw(exceptionData);
                         remainingLength = remainingLength - exceptionData.Length;
                     }
                 }
                 if (exception.InnerException != null)
                 {
                     string innerException = EtwDiagnosticTrace.GetInnerException(exception, remainingLength, remainingAllowedRecursionDepth - 1);
                     if (!string.IsNullOrEmpty(innerException) && innerException.Length < remainingLength)
                     {
                         xml.WriteRaw(innerException);
                     }
                 }
             }
             finally
             {
                 xml.WriteEndElement();
             }
             return;
         }
         else
         {
             return;
         }
     }
     else
     {
         return;
     }
 }
コード例 #38
0
ファイル: TraceCore.Designer.cs プロジェクト: weshaggard/wcf
 /// <summary>
 /// Gets trace definition like: Pool allocating {0} Bytes.
 /// Event description ID=131, Level=verbose, Channel=Debug
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="Size">Parameter 0 for event: Pool allocating {0} Bytes.</param>
 internal static void BufferPoolAllocation(EtwDiagnosticTrace trace, int Size)
 {
     WcfEventSource.Instance.BufferPoolAllocation(Size);
 }
コード例 #39
0
 static bool IsEtwEventEnabled(EtwDiagnosticTrace trace, int eventIndex)
 {
     if (trace.IsEtwProviderEnabled)
     {
         EnsureEventDescriptors();
         return trace.IsEtwEventEnabled(ref eventDescriptors[eventIndex]);
     }
     return false;
 }
コード例 #40
0
 /// <summary>
 /// Check if trace definition is enabled
 /// Event description ID=110, Level=Warning, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 internal static bool CustomTrackingRecordWarningIsEnabled(EtwDiagnosticTrace trace)
 {
     return EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 7);
 }
コード例 #41
0
        public TracePayload GetSerializedPayload(object source, TraceRecord traceRecord, Exception exception, bool getServiceReference)
        {
            string eventSource         = null;
            string extendedData        = null;
            string serializedException = null;

            if (source != null)
            {
                eventSource = CreateSourceString(source);
            }

            if (traceRecord != null)
            {
                StringBuilder sb = StringBuilderPool.Take();
                try
                {
                    using (StringWriter stringWriter = new StringWriter(sb, CultureInfo.CurrentCulture))
                    {
                        using (XmlTextWriter writer = new XmlTextWriter(stringWriter))
                        {
                            writer.WriteStartElement(DiagnosticStrings.ExtendedDataTag);
                            traceRecord.WriteTo(writer);
                            writer.WriteEndElement();
                            writer.Flush();
                            stringWriter.Flush();

                            extendedData = sb.ToString();
                        }
                    }
                }
                finally
                {
                    StringBuilderPool.Return(sb);
                }
            }

            if (exception != null)
            {
                // We want to keep the ETW trace message to under 32k. So we keep the serialized exception to under 28k bytes.
                serializedException = ExceptionToTraceString(exception, MaxExceptionStringLength);
            }

            if (getServiceReference && (EtwDiagnosticTrace.traceAnnotation != null))
            {
                return(new TracePayload(serializedException, eventSource, DiagnosticTraceBase.AppDomainFriendlyName, extendedData, EtwDiagnosticTrace.traceAnnotation()));
            }

            return(new TracePayload(serializedException, eventSource, DiagnosticTraceBase.AppDomainFriendlyName, extendedData, string.Empty));
        }
コード例 #42
0
 /// <summary>
 /// Gets trace definition like: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}
 /// Event description ID=104, Level=Informational, Channel=Analytic
 /// </summary>
 /// <param name="trace">The trace provider</param>
 /// <param name="eventTraceActivity">The event trace activity</param>
 /// <param name="InstanceId">Parameter 0 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="RecordNumber">Parameter 1 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="EventTime">Parameter 2 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="Name">Parameter 3 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="ActivityId">Parameter 4 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="ActivityInstanceId">Parameter 5 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="ActivityTypeName">Parameter 6 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="ChildActivityName">Parameter 7 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="ChildActivityId">Parameter 8 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="ChildActivityInstanceId">Parameter 9 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="ChildActivityTypeName">Parameter 10 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="Annotations">Parameter 11 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="ProfileName">Parameter 12 for event: TrackRecord = ActivityScheduledRecord, InstanceID = {0},  RecordNumber = {1}, EventTime = {2}, Name = {3}, ActivityId = {4}, ActivityInstanceId = {5}, ActivityTypeName = {6}, ChildActivityName = {7}, ChildActivityId = {8}, ChildActivityInstanceId = {9}, ChildActivityTypeName ={10}, Annotations={11}, ProfileName = {12}</param>
 /// <param name="reference">Reference (e.g. service reference) to be added to trace</param>
 internal static bool ActivityScheduledRecord(
             EtwDiagnosticTrace trace, 
             System.Runtime.Diagnostics.EventTraceActivity eventTraceActivity, 
             System.Guid InstanceId, 
             long RecordNumber, 
             long EventTime, 
             string Name, 
             string ActivityId, 
             string ActivityInstanceId, 
             string ActivityTypeName, 
             string ChildActivityName, 
             string ChildActivityId, 
             string ChildActivityInstanceId, 
             string ChildActivityTypeName, 
             string Annotations, 
             string ProfileName, 
             string reference)
 {
     bool etwTraceResult = true;
     TracePayload payload = trace.GetSerializedPayload(null, null, null);
     if (EtwTrackingParticipantTrackRecords.IsEtwEventEnabled(trace, 0))
     {
         etwTraceResult = EtwTrackingParticipantTrackRecords.WriteEtwEvent(trace, 0, eventTraceActivity, InstanceId, RecordNumber, EventTime, Name, ActivityId, ActivityInstanceId, ActivityTypeName, ChildActivityName, ChildActivityId, ChildActivityInstanceId, ChildActivityTypeName, Annotations, ProfileName, reference, payload.AppDomainFriendlyName);
     }
     return etwTraceResult;
 }
コード例 #43
0
ファイル: FxTrace.cs プロジェクト: xier2012/wcf
 private static void EnsureEtwProviderInitialized()
 {
     if (null == FxTrace.s_diagnosticTrace)
     {
         lock (FxTrace.s_lockObject)
         {
             if (null == FxTrace.s_diagnosticTrace)
             {
                 FxTrace.s_diagnosticTrace = InitializeTracing();
             }
         }
     }
 }
コード例 #44
0
 static bool WriteEtwEvent(
             EtwDiagnosticTrace trace, 
             int eventIndex, 
             System.Runtime.Diagnostics.EventTraceActivity eventParam0, 
             System.Guid eventParam1, 
             long eventParam2, 
             long eventParam3, 
             string eventParam4, 
             string eventParam5, 
             string eventParam6, 
             string eventParam7, 
             string eventParam8, 
             string eventParam9, 
             string eventParam10, 
             string eventParam11, 
             string eventParam12, 
             string eventParam13, 
             string eventParam14)
 {
     EnsureEventDescriptors();
     return trace.EtwProvider.WriteEvent(ref eventDescriptors[eventIndex], eventParam0, eventParam1, eventParam2, eventParam3, eventParam4, eventParam5, eventParam6, eventParam7, eventParam8, eventParam9, eventParam10, eventParam11, eventParam12, eventParam13, eventParam14);
 }