Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / MS / Internal / Utility / TraceLog.cs / 1 / 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
- KeyProperty.cs
- APCustomTypeDescriptor.cs
- EntityTemplateFactory.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- FocusTracker.cs
- ResourcesBuildProvider.cs
- XPathQilFactory.cs
- CollectionConverter.cs
- TemplatePartAttribute.cs
- MDIControlStrip.cs
- SystemResourceHost.cs
- ImageListStreamer.cs
- DbProviderSpecificTypePropertyAttribute.cs
- InstanceDescriptor.cs
- URIFormatException.cs
- VectorCollection.cs
- BaseDataList.cs
- XmlSiteMapProvider.cs
- RevocationPoint.cs
- WorkflowRuntimeServiceElementCollection.cs
- IApplicationTrustManager.cs
- TypedTableGenerator.cs
- FixUp.cs
- DependencyObjectValidator.cs
- SchemaImporterExtension.cs
- WebPartDisplayModeCollection.cs
- HwndStylusInputProvider.cs
- _NestedMultipleAsyncResult.cs
- ExecutionEngineException.cs
- DetectRunnableInstancesTask.cs
- ChineseLunisolarCalendar.cs
- DeclarativeConditionsCollection.cs
- SchemaDeclBase.cs
- AppModelKnownContentFactory.cs
- HierarchicalDataBoundControlAdapter.cs
- RuntimeDelegateArgument.cs
- ProtocolProfile.cs
- shaperfactoryquerycacheentry.cs
- BitmapEffectGroup.cs
- DataTemplateSelector.cs
- XmlElement.cs
- ControlParser.cs
- IndexerNameAttribute.cs
- XhtmlTextWriter.cs
- XmlQueryCardinality.cs
- WindowsGrip.cs
- OleDbDataAdapter.cs
- ElementHostPropertyMap.cs
- HyperLinkField.cs
- SiteMapDataSource.cs
- HttpProfileGroupBase.cs
- DatagridviewDisplayedBandsData.cs
- WindowsUpDown.cs
- EntitySqlQueryBuilder.cs
- TraceHandler.cs
- ToolStripDropDownClosedEventArgs.cs
- SafeMarshalContext.cs
- UntypedNullExpression.cs
- LOSFormatter.cs
- FunctionImportElement.cs
- ExchangeUtilities.cs
- XmlSchemaAnnotation.cs
- DataGridItemCollection.cs
- _NestedSingleAsyncResult.cs
- UriExt.cs
- WindowsAuthenticationEventArgs.cs
- AnnotationService.cs
- HttpCapabilitiesBase.cs
- MulticastNotSupportedException.cs
- CultureInfo.cs
- Manipulation.cs
- Separator.cs
- ControlEvent.cs
- HierarchicalDataSourceControl.cs
- ControlPropertyNameConverter.cs
- DependencyPropertyDescriptor.cs
- SortKey.cs
- XmlDictionaryWriter.cs
- XmlSchemaElement.cs
- Track.cs
- ModelUIElement3D.cs
- DataGridViewTopRowAccessibleObject.cs
- ViewPort3D.cs
- PerfProviderCollection.cs
- ColumnClickEvent.cs
- _NetworkingPerfCounters.cs
- UIElement.cs
- ValidationUtility.cs
- SurrogateEncoder.cs
- AlgoModule.cs
- WinInet.cs
- Keywords.cs
- InputBindingCollection.cs
- ViewGenerator.cs
- XhtmlBasicCommandAdapter.cs
- ListGeneralPage.cs
- SystemColors.cs
- WebBrowserHelper.cs
- ObfuscationAttribute.cs
- RelationshipConverter.cs