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
- CheckBoxRenderer.cs
- CompiledXpathExpr.cs
- MembershipUser.cs
- path.cs
- SiteMap.cs
- OutputScopeManager.cs
- MarshalDirectiveException.cs
- SchemaTableColumn.cs
- UInt64.cs
- DefaultEventAttribute.cs
- DataControlFieldHeaderCell.cs
- WindowsStatic.cs
- BaseTemplateCodeDomTreeGenerator.cs
- RawStylusInputCustomDataList.cs
- TextModifierScope.cs
- TypeValidationEventArgs.cs
- FirstMatchCodeGroup.cs
- ListViewGroupConverter.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- DataServiceHostFactory.cs
- TextCompositionManager.cs
- FrameworkTextComposition.cs
- LocationSectionRecord.cs
- HandledMouseEvent.cs
- ContractBase.cs
- SelectionListComponentEditor.cs
- X509CertificateTrustedIssuerElementCollection.cs
- WebBrowserHelper.cs
- SqlVisitor.cs
- XPathNodePointer.cs
- XmlElementAttribute.cs
- RegexCharClass.cs
- WebServicesDescriptionAttribute.cs
- SchemaTableColumn.cs
- RuntimeConfig.cs
- RenderTargetBitmap.cs
- ToolStripPanelRow.cs
- XamlDesignerSerializationManager.cs
- wgx_render.cs
- FormViewDeletedEventArgs.cs
- RelationshipEnd.cs
- PreProcessor.cs
- ContextBase.cs
- AlphaSortedEnumConverter.cs
- EncoderParameters.cs
- SpellerError.cs
- Decimal.cs
- SemanticResultKey.cs
- PasswordBoxAutomationPeer.cs
- NamedObject.cs
- DataGridViewBand.cs
- CodeAttributeArgumentCollection.cs
- Int16.cs
- BamlCollectionHolder.cs
- PageSetupDialog.cs
- Attachment.cs
- TargetParameterCountException.cs
- OdbcError.cs
- WebBrowserBase.cs
- CompilerResults.cs
- MimeTextImporter.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- XmlSchemaInclude.cs
- DummyDataSource.cs
- DataGridViewComboBoxCell.cs
- TimelineGroup.cs
- Permission.cs
- MarkupProperty.cs
- HtmlFormWrapper.cs
- AuthenticationService.cs
- Transactions.cs
- ProfileModule.cs
- MobileControlsSection.cs
- Point3DKeyFrameCollection.cs
- DataGridViewImageCell.cs
- ToolStripSplitButton.cs
- Internal.cs
- Point3DValueSerializer.cs
- MultipartContentParser.cs
- RIPEMD160.cs
- CannotUnloadAppDomainException.cs
- ListViewDeletedEventArgs.cs
- Nullable.cs
- OutputWindow.cs
- NonSerializedAttribute.cs
- CorrelationKeyCalculator.cs
- Compiler.cs
- XmlSchemaAll.cs
- FormsAuthentication.cs
- ToolboxItemImageConverter.cs
- ChameleonKey.cs
- NativeMethods.cs
- ParentUndoUnit.cs
- CatalogZone.cs
- UnitySerializationHolder.cs
- _ServiceNameStore.cs
- DataBoundControlActionList.cs
- IndependentAnimationStorage.cs
- ConnectionInterfaceCollection.cs
- ItemPager.cs