Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / Utils / TraceHelpers.cs / 1305376 / TraceHelpers.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // TraceHelpers.cs // //[....] // // Common routines used to trace information about execution, the state of things, etc. // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System; using System.Diagnostics; using System.Globalization; using System.IO; using System.Diagnostics.Contracts; namespace System.Linq.Parallel { internal static class TraceHelpers { #if PFXTRACE // If tracing is turned on, we create a new trace source. private static TraceSource s_traceSource = new TraceSource("PFX", SourceLevels.All); // Some constants used to set trace settings via environment variables. private const string s_traceDefaultEnableEnvironmentVariable = "PLINQ_TRACE_DEFAULT_ENABLE"; private const string s_traceOutputEnvironmentVariable = "PLINQ_TRACE_OUT"; private const string s_traceLevelEnvironmentVariable = "PLINQ_TRACE_LEVEL"; //---------------------------------------------------------------------------------------- // Clear the trace source's listeners so that, by default, all traces >NUL. // static TraceHelpers() { s_traceSource.Listeners.Clear(); // If trace output is requested in the environment, set it. string traceOutput = Environment.GetEnvironmentVariable(s_traceOutputEnvironmentVariable); if (traceOutput != null && !String.IsNullOrEmpty(traceOutput.Trim())) { s_traceSource.Listeners.Add(new TextWriterTraceListener( new StreamWriter(File.Open(traceOutput, FileMode.OpenOrCreate, FileAccess.ReadWrite)))); } string traceEnable = Environment.GetEnvironmentVariable(s_traceDefaultEnableEnvironmentVariable); if (traceEnable != null) { s_traceSource.Listeners.Add(new DefaultTraceListener()); } // If verbose tracing was requested, turn it on. string traceLevel = Environment.GetEnvironmentVariable(s_traceLevelEnvironmentVariable); if ("0".Equals(traceLevel)) { SetVerbose(); } } #endif //--------------------------------------------------------------------------------------- // Adds a listener to the PLINQ trace source, but only in PFXTRACE builds. // #if PFXTRACE [Conditional("PFXTRACE")] internal static void AddListener(TraceListener listener) { s_traceSource.Listeners.Add(listener); } #endif //--------------------------------------------------------------------------------------- // Turns on verbose output for all current listeners. This includes a ton of information, // like the call-stack, date-time, thread-ids, .... // [Conditional("PFXTRACE")] internal static void SetVerbose() { #if PFXTRACE foreach (TraceListener l in s_traceSource.Listeners) { l.TraceOutputOptions = TraceOptions.Callstack | TraceOptions.DateTime | TraceOptions.ThreadId; } #endif } //--------------------------------------------------------------------------------------- // Tracing helpers. These are all conditionally enabled for PFXTRACE builds only. // [Conditional("PFXTRACE")] internal static void TraceInfo(string msg, params object[] args) { #if PFXTRACE lock (s_traceSource) { s_traceSource.TraceEvent(TraceEventType.Information, 0, msg, args); } s_traceSource.Flush(); #endif } [Conditional("PFXTRACE")] internal static void TraceWarning(string msg, params object[] args) { #if PFXTRACE lock (s_traceSource) { s_traceSource.TraceEvent(TraceEventType.Warning, 0, msg, args); } s_traceSource.Flush(); #endif } [Conditional("PFXTRACE")] internal static void TraceError(string msg, params object[] args) { #if PFXTRACE lock (s_traceSource) { s_traceSource.TraceEvent(TraceEventType.Error, 0, msg, args); } s_traceSource.Flush(); #endif } internal static void NotYetImplemented() { NotYetImplemented(false, "NYI"); } internal static void NotYetImplemented(string message) { NotYetImplemented(false, "NYI: " + message); } internal static void NotYetImplemented(bool assertCondition, string message) { Contract.Assert(assertCondition, "NYI: " + message); if (!assertCondition) { throw new NotImplementedException(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RijndaelManaged.cs
- XmlTextAttribute.cs
- HashMembershipCondition.cs
- InputScopeAttribute.cs
- ReaderWriterLock.cs
- PresentationAppDomainManager.cs
- InstanceKeyView.cs
- EventLogEntry.cs
- CompositeCollectionView.cs
- SEHException.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- FigureParaClient.cs
- TabletDeviceInfo.cs
- BrowserCapabilitiesFactory35.cs
- odbcmetadatacolumnnames.cs
- PageRanges.cs
- RotateTransform3D.cs
- PropertyFilter.cs
- Cursors.cs
- PixelFormatConverter.cs
- ListControlConvertEventArgs.cs
- ReturnEventArgs.cs
- infer.cs
- XmlnsDefinitionAttribute.cs
- PolyBezierSegmentFigureLogic.cs
- NativeMethods.cs
- CodeDOMUtility.cs
- XamlSerializer.cs
- AuthenticationModuleElementCollection.cs
- Polygon.cs
- Vector3DKeyFrameCollection.cs
- ClientBuildManagerCallback.cs
- ItemCollection.cs
- returneventsaver.cs
- DeviceOverridableAttribute.cs
- GeneralTransform2DTo3D.cs
- AnalyzedTree.cs
- CollectionBuilder.cs
- PageFunction.cs
- ManualResetEvent.cs
- PersianCalendar.cs
- StubHelpers.cs
- webbrowsersite.cs
- DescendantOverDescendantQuery.cs
- followingquery.cs
- CellTreeNodeVisitors.cs
- IntegerValidator.cs
- TrustLevelCollection.cs
- OleDbCommand.cs
- DynamicControl.cs
- LinkedResource.cs
- KeyInstance.cs
- SocketPermission.cs
- RegistryConfigurationProvider.cs
- FileDetails.cs
- DataBindingList.cs
- NavigationProperty.cs
- PersonalizationState.cs
- Ticks.cs
- safex509handles.cs
- StringInfo.cs
- Serializer.cs
- FileStream.cs
- GeneralTransform2DTo3DTo2D.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- SqlUDTStorage.cs
- CqlLexer.cs
- ListDictionaryInternal.cs
- BreadCrumbTextConverter.cs
- DataGridViewImageColumn.cs
- ContentElement.cs
- JobPageOrder.cs
- FieldCollectionEditor.cs
- DataQuery.cs
- DocumentViewer.cs
- CalendarDateRange.cs
- LayeredChannelFactory.cs
- MultilineStringConverter.cs
- AuthenticationManager.cs
- ViewCellSlot.cs
- MessageQueueTransaction.cs
- TableProviderWrapper.cs
- FieldAccessException.cs
- LongTypeConverter.cs
- BezierSegment.cs
- DBParameter.cs
- sqlpipe.cs
- ApplicationSecurityManager.cs
- TableCell.cs
- PagesChangedEventArgs.cs
- StatusStrip.cs
- LoadWorkflowByInstanceKeyCommand.cs
- CryptoStream.cs
- Roles.cs
- DictionaryGlobals.cs
- CryptoApi.cs
- HelpEvent.cs
- HyperLinkColumn.cs
- PreviewPageInfo.cs
- SectionVisual.cs