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); } } }
private static string BuildTrace(ref System.Diagnostics.Eventing.EventDescriptor eventDescriptor, string description, TracePayload payload) { StringBuilder stringBuilder = new StringBuilder(); XmlTextWriter xmlTextWriter = new XmlTextWriter(new StringWriter(stringBuilder, CultureInfo.CurrentCulture)); 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", DiagnosticTrace.LookupChannel((TraceChannel)eventDescriptor.Channel)); xmlTextWriter.WriteElementString("TraceIdentifier", DiagnosticTrace.GenerateTraceCode(ref eventDescriptor)); 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(); return(stringBuilder.ToString()); }
static string BuildTrace(ref EventDescriptor eventDescriptor, string description, TracePayload payload) { StringBuilder sb = new StringBuilder(); XmlTextWriter writer = new XmlTextWriter(new StringWriter(sb, CultureInfo.CurrentCulture)); writer.WriteStartElement(DiagnosticStrings.TraceRecordTag); writer.WriteAttributeString(DiagnosticStrings.NamespaceTag, DiagnosticTrace.TraceRecordVersion); writer.WriteAttributeString(DiagnosticStrings.SeverityTag, TraceLevelHelper.LookupSeverity((TraceEventLevel)eventDescriptor.Level, (TraceEventOpcode)eventDescriptor.Opcode)); writer.WriteAttributeString(DiagnosticStrings.ChannelTag, DiagnosticTrace.LookupChannel((TraceChannel)eventDescriptor.Channel)); writer.WriteElementString(DiagnosticStrings.TraceCodeTag, DiagnosticTrace.GenerateTraceCode(ref eventDescriptor)); 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(); return(sb.ToString()); }
public void WriteTraceSource(ref System.Diagnostics.Eventing.EventDescriptor eventDescriptor, string description, TracePayload payload) { if (this.TracingEnabled) { XPathNavigator data = null; try { string xml = BuildTrace(ref eventDescriptor, description, payload); XmlDocument document = new XmlDocument(); document.LoadXml(xml); data = document.CreateNavigator(); this.TraceSource.TraceData(TraceLevelHelper.GetTraceEventType(eventDescriptor.Level, eventDescriptor.Opcode), eventDescriptor.EventId, data); if (this.calledShutdown) { this.TraceSource.Flush(); } } catch (Exception exception) { if (Fx.IsFatal(exception)) { throw; } this.LogTraceFailure((data == null) ? string.Empty : data.ToString(), exception); } } }
public bool ShouldTraceToTraceSource(TraceEventLevel eventLevel) { if (!this.HaveListeners || this.TraceSource == null) { return(false); } return((int)SourceLevels.Off != ((int)TraceLevelHelper.GetTraceEventType(eventLevel) & (int)this.Level)); }
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; } } } }
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); }
public void WriteTraceSource(ref System.Diagnostics.Eventing.EventDescriptor eventDescriptor, string description, TracePayload payload) { if (this.TracingEnabled) { XPathNavigator xPathNavigator = null; try { string str = DiagnosticTrace.BuildTrace(ref eventDescriptor, description, payload); XmlDocument xmlDocument = new XmlDocument(); StringReader stringReader = new StringReader(str); XmlReaderSettings xmlReaderSetting = new XmlReaderSettings() { DtdProcessing = DtdProcessing.Prohibit }; using (XmlReader xmlReader = XmlReader.Create(stringReader, xmlReaderSetting)) { xmlDocument.Load(xmlReader); } xPathNavigator = xmlDocument.CreateNavigator(); this.TraceSource.TraceData(TraceLevelHelper.GetTraceEventType(eventDescriptor.Level, eventDescriptor.Opcode), eventDescriptor.EventId, xPathNavigator); if (this.calledShutdown) { this.TraceSource.Flush(); } } catch (Exception exception1) { Exception exception = exception1; if (Fx.IsFatal(exception)) { throw; } this.LogTraceFailure((xPathNavigator == null ? string.Empty : xPathNavigator.ToString()), exception); } } }
public bool ShouldTraceToTraceSource(TraceEventLevel level) { return(ShouldTrace(TraceLevelHelper.GetTraceEventType(level))); }
public bool ShouldTraceToTraceSource(TraceEventLevel eventLevel) { return(this.HaveListeners && this.TraceSource != null && 0 != ((int)TraceLevelHelper.GetTraceEventType(eventLevel) & (int)this.Level)); }
public bool ShouldTraceToTraceSource(TraceEventLevel level) { return((this.HaveListeners && (this.TraceSource != null)) && (((TraceEventType)0) != (TraceLevelHelper.GetTraceEventType(level) & ((TraceEventType)((int)this.Level))))); }