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
- X509CertificateEndpointIdentity.cs
- TextEffect.cs
- SoapMessage.cs
- CaseStatement.cs
- InstanceDescriptor.cs
- SecureConversationVersion.cs
- SchemaCreator.cs
- EventDriven.cs
- SAPICategories.cs
- WindowsGraphics2.cs
- SelectionWordBreaker.cs
- CompilerCollection.cs
- WeakHashtable.cs
- Profiler.cs
- ExtensibleClassFactory.cs
- HandledMouseEvent.cs
- SafeMemoryMappedFileHandle.cs
- DataGridViewLinkColumn.cs
- Int64AnimationBase.cs
- InternalControlCollection.cs
- Util.cs
- StylusPointProperty.cs
- DynamicRendererThreadManager.cs
- validation.cs
- shaperfactory.cs
- OpenTypeCommon.cs
- Comparer.cs
- GroupQuery.cs
- MdiWindowListItemConverter.cs
- UnmanagedBitmapWrapper.cs
- MemoryStream.cs
- CommonRemoteMemoryBlock.cs
- DataGridViewSelectedRowCollection.cs
- DragEvent.cs
- DynamicILGenerator.cs
- fixedPageContentExtractor.cs
- ListSortDescriptionCollection.cs
- SoapFormatter.cs
- PaginationProgressEventArgs.cs
- EmptyEnumerable.cs
- EncoderParameter.cs
- PermissionSet.cs
- WindowsStatusBar.cs
- OleDbCommandBuilder.cs
- XPathNavigatorKeyComparer.cs
- DbQueryCommandTree.cs
- EncryptedType.cs
- ExpressionVisitor.cs
- DependsOnAttribute.cs
- DataTableNewRowEvent.cs
- URLMembershipCondition.cs
- LabelLiteral.cs
- WebPartConnection.cs
- XmlBoundElement.cs
- TreeViewImageKeyConverter.cs
- ToolStripGrip.cs
- SQLSingleStorage.cs
- UrlPath.cs
- NullToBooleanConverter.cs
- MenuScrollingVisibilityConverter.cs
- EntityDataSourceValidationException.cs
- InfoCardSymmetricCrypto.cs
- shaper.cs
- PropertyCollection.cs
- GlyphRun.cs
- RoleManagerEventArgs.cs
- OperationDescriptionCollection.cs
- LineGeometry.cs
- ToolStripSplitButton.cs
- CompletionCallbackWrapper.cs
- MenuItemAutomationPeer.cs
- RankException.cs
- UIElement3DAutomationPeer.cs
- SQLChars.cs
- InvalidDataException.cs
- SoapInteropTypes.cs
- XPathAncestorQuery.cs
- GcHandle.cs
- CfgParser.cs
- DataTemplate.cs
- SemanticKeyElement.cs
- LinkArea.cs
- ToolStripCodeDomSerializer.cs
- HttpResponseInternalWrapper.cs
- EntityViewContainer.cs
- ControlCachePolicy.cs
- ExpandedWrapper.cs
- EditingScope.cs
- WarningException.cs
- Decimal.cs
- GradientBrush.cs
- RenderData.cs
- Model3D.cs
- DoubleIndependentAnimationStorage.cs
- LoginName.cs
- SByte.cs
- RemotingServices.cs
- FixedTextBuilder.cs
- TrackingProfileDeserializationException.cs
- ButtonBaseAutomationPeer.cs