//---------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- namespace System.ServiceModel.Activation.Diagnostics { using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Runtime; using System.Runtime.Diagnostics; static class TraceUtility { static Dictionary traceCodes = new Dictionary(7) { { TraceCode.WebHostFailedToCompile, "WebHostFailedToCompile" }, { TraceCode.WebHostServiceActivated, "WebHostServiceActivated" }, { TraceCode.WebHostFailedToActivateService, "WebHostFailedToActivateService" }, { TraceCode.WebHostCompilation, "WebHostCompilation" }, { TraceCode.WebHostDebugRequest, "WebHostDebugRequest" }, { TraceCode.WebHostProtocolMisconfigured, "WebHostProtocolMisconfigured" }, { TraceCode.WebHostServiceCloseFailed, "WebHostServiceCloseFailed" }, { TraceCode.WebHostNoCBTSupport, "WebHostNoCBTSupport" }, }; internal static void TraceEvent(TraceEventType severity, int traceCode, string traceDescription, object source) { TraceEvent(severity, traceCode, traceDescription, null, source, null); } internal static void TraceEvent(TraceEventType severity, int traceCode, string traceDescription, object source, Exception exception) { TraceEvent(severity, traceCode, traceDescription, null, source, exception); } internal static void TraceEvent(TraceEventType severity, int traceCode, string traceDescription, TraceRecord record, object source, Exception exception) { Fx.Assert(traceCodes.ContainsKey(traceCode), string.Format(CultureInfo.InvariantCulture, "Unsupported trace code: Please add trace code 0x{0} to the dictionary TraceUtility.traceCodes in {1}", traceCode.ToString("X", CultureInfo.InvariantCulture), typeof(TraceUtility))); string msdnTraceCode = System.ServiceModel.Diagnostics.LegacyDiagnosticTrace.GenerateMsdnTraceCode("System.ServiceModel.Activation", traceCodes[traceCode]); DiagnosticUtility.DiagnosticTrace.TraceEvent(severity, traceCode, msdnTraceCode, traceDescription, record, exception, source); } internal static string CreateSourceString(object source) { return source.GetType().ToString() + "/" + source.GetHashCode().ToString(CultureInfo.CurrentCulture); } } }