Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Messaging / DebugTraceHelper.cs / 1 / DebugTraceHelper.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace Microsoft.Transactions.Wsat.Messaging { using System; using System.Diagnostics; using System.Globalization; using System.Threading; using Microsoft.Transactions.Bridge; // A base class for formatting debug trace output. This class // ensures that all messages are formatted similarly, so that // output from multiple sources can be lined up, compared, and // correlated. An output message from this class looks like: // // 2003-11-21 18:52:24Z [ 808] [DRIVER ] : Awaiting recovery done... // // The fields are, from left to right: date, time, thread, // name, and message. // // The TraceSwitch constructor parameter indicates which trace // switch controls the trace output. The Name parameter provides // a tag for the compoent doing the tracing (DRIVER, in the above // example). For performance, you should probably create a static // instance of one of these and use it for everything. // // Each of the trace functions (TraceVerbose, TraceWarning, etc.) // can take a format string and parameters, ala String.Format. // The number of parameters, however, is limited to four. This is // because variable-length argument lists cause array allocations, // and the performance impact of these functions should be as // small as possible when tracing is disabled. // sealed class DebugTraceHelper { string name; TraceSwitch traceSwitch; public DebugTraceHelper(string name, TraceSwitch traceSwitch) { this.name = name; this.traceSwitch = traceSwitch; } string FormatMessage(string message) { return String.Format( CultureInfo.InvariantCulture, "{0} [{1,4:x8}] [{2}] : {3}", DateTime.Now.ToString( "u", DateTimeFormatInfo.InvariantInfo), Thread.CurrentThread.ManagedThreadId.ToString( "x", CultureInfo.InvariantCulture), this.name, message); } public void Trace(TraceLevel level, string message) { if (TraceEnabled(level)) { message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public void Trace(TraceLevel level, string message, object param0) { if (TraceEnabled(level)) { message = String.Format(CultureInfo.InvariantCulture, message, param0); message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public void Trace(TraceLevel level, string message, object param0, object param1) { if (TraceEnabled(level)) { message = String.Format(CultureInfo.InvariantCulture, message, param0, param1); message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public void Trace(TraceLevel level, string message, object param0, object param1, object param2) { if (TraceEnabled(level)) { message = String.Format(CultureInfo.InvariantCulture, message, param0, param1, param2); message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public void Trace(TraceLevel level, string message, object param0, object param1, object param2, object param3) { if (TraceEnabled(level)) { message = String.Format(CultureInfo.InvariantCulture, message, param0, param1, param2, param3); message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public bool TraceEnabled(TraceLevel level) { return (this.traceSwitch.Level >= level); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeSubDirectoriesCollection.cs
- Hex.cs
- FixedElement.cs
- Transactions.cs
- LinqDataSourceContextEventArgs.cs
- IDispatchConstantAttribute.cs
- OperationGenerator.cs
- WebPageTraceListener.cs
- TextRangeProviderWrapper.cs
- SqlDeflator.cs
- HtmlWindowCollection.cs
- UnmanagedBitmapWrapper.cs
- FontUnit.cs
- EventSinkHelperWriter.cs
- ControlBuilder.cs
- AttachmentCollection.cs
- TdsParserStaticMethods.cs
- ButtonBase.cs
- InputQueue.cs
- FaultContractAttribute.cs
- ListBindableAttribute.cs
- FunctionParameter.cs
- PopupRootAutomationPeer.cs
- Vector3dCollection.cs
- ManagementDateTime.cs
- WhitespaceRuleLookup.cs
- ProfileModule.cs
- NumericUpDownAccelerationCollection.cs
- TypeDelegator.cs
- AsyncOperation.cs
- Soap.cs
- AnnotationService.cs
- FormatConvertedBitmap.cs
- FontStyle.cs
- AttributeUsageAttribute.cs
- ConcurrentBag.cs
- XmlName.cs
- ApplicationFileCodeDomTreeGenerator.cs
- TextDecorationCollection.cs
- Int64AnimationUsingKeyFrames.cs
- InputProcessorProfilesLoader.cs
- EntityConnectionStringBuilder.cs
- AppSettingsReader.cs
- AmbientValueAttribute.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- RepeaterItemCollection.cs
- ProxyAttribute.cs
- ADRole.cs
- TextBlock.cs
- DbMetaDataCollectionNames.cs
- UpdatePanel.cs
- MimeFormatExtensions.cs
- InternalConfigRoot.cs
- TaskHelper.cs
- NetPeerTcpBindingCollectionElement.cs
- BindMarkupExtensionSerializer.cs
- CustomWebEventKey.cs
- ReflectPropertyDescriptor.cs
- HttpModuleActionCollection.cs
- LicenseException.cs
- HMACRIPEMD160.cs
- HttpRequestCacheValidator.cs
- LogExtentCollection.cs
- Matrix3DStack.cs
- CodeNamespaceImportCollection.cs
- XmlCustomFormatter.cs
- InlineObject.cs
- IncrementalHitTester.cs
- EncryptedData.cs
- PreloadHost.cs
- WindowHideOrCloseTracker.cs
- HashSet.cs
- RegularExpressionValidator.cs
- StorageScalarPropertyMapping.cs
- XmlSchemaCompilationSettings.cs
- XPathQilFactory.cs
- View.cs
- ParameterBuilder.cs
- EntityCommandDefinition.cs
- MarshalByRefObject.cs
- PanelContainerDesigner.cs
- CodeCommentStatementCollection.cs
- RequiredAttributeAttribute.cs
- ByteAnimationUsingKeyFrames.cs
- SourceItem.cs
- EmbeddedMailObject.cs
- ComponentCodeDomSerializer.cs
- Emitter.cs
- AppDomainResourcePerfCounters.cs
- FontUnitConverter.cs
- SmtpFailedRecipientsException.cs
- BaseTreeIterator.cs
- AxisAngleRotation3D.cs
- NullableDecimalAverageAggregationOperator.cs
- XhtmlBasicImageAdapter.cs
- DBCommand.cs
- CompositeActivityValidator.cs
- ZipPackage.cs
- CheckBoxPopupAdapter.cs
- ConfigurationSectionCollection.cs