Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Utility / TraceLog.cs / 1305600 / TraceLog.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Log of recent actions. Use this to debug those nasty problems // that don't repro on demand and don't have enough information in a crash // dump. // // In the class(es) of interest, add a TraceLog object. At points of // interest, call TraceLog.Add to record a string in the log. After the // crash, call TraceLog.WriteLog (or simply examine the log directly in // the debugger). Log entries are timestamped. // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Globalization; namespace MS.Internal.Utility { internal class TraceLog { // create an unbounded trace log internal TraceLog() : this(Int32.MaxValue) {} // create a trace log that remembers the last 'size' actions internal TraceLog(int size) { _size = size; _log = new ArrayList(); } // add an entry to the log. Args are just like String.Format internal void Add(string message, params object[] args) { // create timestamped message string string s = DateTime.Now.Ticks.ToString(CultureInfo.InvariantCulture) + " " + String.Format(CultureInfo.InvariantCulture, message, args); // if log is full, discard the oldest message if (_log.Count == _size) _log.RemoveAt(0); // add the new message _log.Add(s); } // write the log to the console internal void WriteLog() { for (int k=0; k<_log.Count; ++k) Console.WriteLine(_log[k]); } // return a printable id for the object internal static string IdFor(object o) { if (o == null) return "NULL"; else return String.Format(CultureInfo.InvariantCulture, "{0}.{1}", o.GetType().Name, o.GetHashCode()); } ArrayList _log; int _size; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Log of recent actions. Use this to debug those nasty problems // that don't repro on demand and don't have enough information in a crash // dump. // // In the class(es) of interest, add a TraceLog object. At points of // interest, call TraceLog.Add to record a string in the log. After the // crash, call TraceLog.WriteLog (or simply examine the log directly in // the debugger). Log entries are timestamped. // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Globalization; namespace MS.Internal.Utility { internal class TraceLog { // create an unbounded trace log internal TraceLog() : this(Int32.MaxValue) {} // create a trace log that remembers the last 'size' actions internal TraceLog(int size) { _size = size; _log = new ArrayList(); } // add an entry to the log. Args are just like String.Format internal void Add(string message, params object[] args) { // create timestamped message string string s = DateTime.Now.Ticks.ToString(CultureInfo.InvariantCulture) + " " + String.Format(CultureInfo.InvariantCulture, message, args); // if log is full, discard the oldest message if (_log.Count == _size) _log.RemoveAt(0); // add the new message _log.Add(s); } // write the log to the console internal void WriteLog() { for (int k=0; k<_log.Count; ++k) Console.WriteLine(_log[k]); } // return a printable id for the object internal static string IdFor(object o) { if (o == null) return "NULL"; else return String.Format(CultureInfo.InvariantCulture, "{0}.{1}", o.GetType().Name, o.GetHashCode()); } ArrayList _log; int _size; } } // 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
- OdbcConnectionFactory.cs
- DbProviderSpecificTypePropertyAttribute.cs
- DataServiceHostFactory.cs
- ToolboxItemSnapLineBehavior.cs
- _SSPIWrapper.cs
- SemanticResolver.cs
- AutomationPatternInfo.cs
- CardSpaceException.cs
- MenuAdapter.cs
- ADConnectionHelper.cs
- XmlDigitalSignatureProcessor.cs
- DesignDataSource.cs
- ImageAttributes.cs
- SessionParameter.cs
- UITypeEditor.cs
- WebPermission.cs
- TypeDependencyAttribute.cs
- UdpTransportSettings.cs
- ChangeInterceptorAttribute.cs
- WebBaseEventKeyComparer.cs
- HyperLinkField.cs
- TracePayload.cs
- XmlObjectSerializerWriteContextComplex.cs
- EventMetadata.cs
- OdbcConnectionStringbuilder.cs
- CmsInterop.cs
- UiaCoreTypesApi.cs
- DataPager.cs
- PerspectiveCamera.cs
- SimpleTypeResolver.cs
- X509CertificateStore.cs
- DesignerAttribute.cs
- WindowsScroll.cs
- ConstructorBuilder.cs
- FixedFlowMap.cs
- SimpleTypeResolver.cs
- InvalidDocumentContentsException.cs
- ScriptServiceAttribute.cs
- PermissionRequestEvidence.cs
- PeerNameRecordCollection.cs
- ButtonBaseAdapter.cs
- DeferredElementTreeState.cs
- InstanceDataCollectionCollection.cs
- LayeredChannelListener.cs
- VectorCollectionConverter.cs
- VectorCollectionConverter.cs
- Conditional.cs
- StackOverflowException.cs
- SpinWait.cs
- RectAnimationUsingKeyFrames.cs
- NavigatingCancelEventArgs.cs
- SqlCacheDependencyDatabaseCollection.cs
- ProcessModelInfo.cs
- ApplicationTrust.cs
- ReaderWriterLockWrapper.cs
- StateDesigner.cs
- GenericXmlSecurityToken.cs
- WebPartExportVerb.cs
- InternalSafeNativeMethods.cs
- DotExpr.cs
- CapacityStreamGeometryContext.cs
- InstanceLockedException.cs
- DataMemberAttribute.cs
- GPStream.cs
- XmlQualifiedNameTest.cs
- SoapObjectReader.cs
- InternalConfigConfigurationFactory.cs
- VerifyHashRequest.cs
- StrokeCollectionConverter.cs
- OleTxTransaction.cs
- LayoutSettings.cs
- MultiBinding.cs
- MinimizableAttributeTypeConverter.cs
- ChangeProcessor.cs
- Size3D.cs
- ConditionCollection.cs
- DesignerOptionService.cs
- Activity.cs
- ScrollBarRenderer.cs
- WindowsFont.cs
- FormsAuthenticationTicket.cs
- WebConfigurationManager.cs
- CacheDependency.cs
- DBDataPermission.cs
- HMACSHA256.cs
- QilPatternVisitor.cs
- MenuItemBinding.cs
- ListViewDataItem.cs
- DebugInfoGenerator.cs
- util.cs
- LineInfo.cs
- EdmRelationshipRoleAttribute.cs
- FixedTextPointer.cs
- ErrorProvider.cs
- _CacheStreams.cs
- ClickablePoint.cs
- Control.cs
- MetadataReference.cs
- DelimitedListTraceListener.cs
- SystemUnicastIPAddressInformation.cs