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
- EntityDataSourceEntitySetNameItem.cs
- Trigger.cs
- FileUpload.cs
- QualifiedCellIdBoolean.cs
- FlagsAttribute.cs
- FieldAccessException.cs
- InvokePatternIdentifiers.cs
- HtmlTable.cs
- BitmapFrameDecode.cs
- SafeFileHandle.cs
- CustomTypeDescriptor.cs
- PolicyChain.cs
- CacheChildrenQuery.cs
- SplitContainer.cs
- HashHelper.cs
- TrackingServices.cs
- DetailsViewInsertedEventArgs.cs
- PreDigestedSignedInfo.cs
- FrameworkTextComposition.cs
- MarkupObject.cs
- Transaction.cs
- SharedPerformanceCounter.cs
- FixedTextContainer.cs
- BufferedGraphicsContext.cs
- Exceptions.cs
- RetrieveVirtualItemEventArgs.cs
- InteropExecutor.cs
- LazyTextWriterCreator.cs
- ToolStripItemClickedEventArgs.cs
- DataTemplate.cs
- RouteParameter.cs
- PrintSystemException.cs
- LineSegment.cs
- XmlSchemaExporter.cs
- RoleManagerEventArgs.cs
- StructuralObject.cs
- PageWrapper.cs
- SelectionChangedEventArgs.cs
- WebHttpBindingElement.cs
- Material.cs
- Script.cs
- StsCommunicationException.cs
- FrameDimension.cs
- WebEvents.cs
- InheritedPropertyChangedEventArgs.cs
- DmlSqlGenerator.cs
- GenericPrincipal.cs
- ReadOnlyTernaryTree.cs
- EntityDataReader.cs
- ProviderUtil.cs
- DataRelationCollection.cs
- InfoCardUIAgent.cs
- DocumentCollection.cs
- DependencyPropertyDescriptor.cs
- TCPClient.cs
- RemotingException.cs
- DbDataSourceEnumerator.cs
- MaskInputRejectedEventArgs.cs
- SQLStringStorage.cs
- AppDomainUnloadedException.cs
- ObjectDataSource.cs
- MenuScrollingVisibilityConverter.cs
- ContextMenu.cs
- FileController.cs
- LayoutExceptionEventArgs.cs
- DataControlImageButton.cs
- ForeignConstraint.cs
- DataGridViewCellCancelEventArgs.cs
- Panel.cs
- NetworkInformationException.cs
- ButtonRenderer.cs
- StorageInfo.cs
- ReadOnlyDictionary.cs
- LocationSectionRecord.cs
- HMACMD5.cs
- EventLogRecord.cs
- Size.cs
- SafeBitVector32.cs
- TypeUtil.cs
- ProcessThread.cs
- PropertyPushdownHelper.cs
- DialogResultConverter.cs
- SequentialUshortCollection.cs
- AsyncPostBackTrigger.cs
- ContentOperations.cs
- WindowsTokenRoleProvider.cs
- ValidationErrorEventArgs.cs
- ListDictionary.cs
- ProxyGenerationError.cs
- Vector3DAnimation.cs
- SystemThemeKey.cs
- WebPartDeleteVerb.cs
- Substitution.cs
- Axis.cs
- Permission.cs
- Types.cs
- ViewService.cs
- ExpressionEditorAttribute.cs
- PageEventArgs.cs
- Serializer.cs