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
- WebPartDescription.cs
- PixelFormatConverter.cs
- ChannelFactory.cs
- RequestCacheValidator.cs
- DataGridColumnsPage.cs
- RelatedPropertyManager.cs
- EventHandlersDesigner.cs
- BindingExpressionUncommonField.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- XhtmlCssHandler.cs
- SortAction.cs
- SchemaSetCompiler.cs
- ApplicationManager.cs
- IndexingContentUnit.cs
- PropertyToken.cs
- ModuleConfigurationInfo.cs
- SqlFormatter.cs
- LinkClickEvent.cs
- AsyncSerializedWorker.cs
- QueryExecutionOption.cs
- AutoGeneratedFieldProperties.cs
- Propagator.cs
- Conditional.cs
- ElementProxy.cs
- XmlSchemaExporter.cs
- ColorConvertedBitmapExtension.cs
- ThemeInfoAttribute.cs
- PrivateFontCollection.cs
- WebPartUserCapability.cs
- LocalizabilityAttribute.cs
- StringValueSerializer.cs
- JoinGraph.cs
- AVElementHelper.cs
- TableFieldsEditor.cs
- DispatcherFrame.cs
- RuntimeHelpers.cs
- SamlSecurityTokenAuthenticator.cs
- BamlRecords.cs
- FileDataSourceCache.cs
- AssociationSetMetadata.cs
- DataGridViewCheckBoxCell.cs
- BaseDataListDesigner.cs
- StyleSheetRefUrlEditor.cs
- FtpWebResponse.cs
- InstanceNameConverter.cs
- TextEmbeddedObject.cs
- IndicFontClient.cs
- AttachmentCollection.cs
- PostBackTrigger.cs
- SafeRegistryHandle.cs
- DataGridItemAutomationPeer.cs
- ApplyImportsAction.cs
- EmptyEnumerable.cs
- UnmanagedHandle.cs
- EventProviderWriter.cs
- RemotingClientProxy.cs
- SystemInformation.cs
- NeutralResourcesLanguageAttribute.cs
- TargetParameterCountException.cs
- PerformanceCounterPermission.cs
- ButtonBaseDesigner.cs
- WebPartEditorOkVerb.cs
- BamlTreeNode.cs
- ConditionalExpression.cs
- WindowsSysHeader.cs
- TransactionalPackage.cs
- WindowsTooltip.cs
- EntitySetBaseCollection.cs
- InputElement.cs
- ReturnType.cs
- HostingEnvironmentSection.cs
- SystemTcpConnection.cs
- Imaging.cs
- Geometry3D.cs
- TypographyProperties.cs
- GetChildSubtree.cs
- OutputScopeManager.cs
- UnsafeNativeMethods.cs
- BrowserDefinitionCollection.cs
- CommandConverter.cs
- IriParsingElement.cs
- keycontainerpermission.cs
- AsyncContentLoadedEventArgs.cs
- Table.cs
- GradientBrush.cs
- VisualCollection.cs
- ItemList.cs
- TabItemAutomationPeer.cs
- BaseParaClient.cs
- DependencyObject.cs
- CacheEntry.cs
- PopOutPanel.cs
- StringPropertyBuilder.cs
- FileDataSourceCache.cs
- HWStack.cs
- QueryOutputWriter.cs
- StatusBarDrawItemEvent.cs
- CodeAccessPermission.cs
- RequestTimeoutManager.cs
- EventSetter.cs