Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- XmlNavigatorStack.cs
- ResolveCriteriaApril2005.cs
- RemotingClientProxy.cs
- Point3DCollectionValueSerializer.cs
- BackgroundWorker.cs
- TranslateTransform3D.cs
- EntityDataSourceContextCreatedEventArgs.cs
- Baml2006SchemaContext.cs
- ChtmlFormAdapter.cs
- DateTimeOffsetStorage.cs
- FixedSOMLineCollection.cs
- UntypedNullExpression.cs
- XmlTextReaderImpl.cs
- MetadataElement.cs
- Zone.cs
- VectorAnimationUsingKeyFrames.cs
- ZipIOLocalFileBlock.cs
- DbProviderFactory.cs
- BinaryObjectWriter.cs
- XmlImplementation.cs
- TypePropertyEditor.cs
- ListControl.cs
- DataListItem.cs
- Binding.cs
- Unit.cs
- IdentityManager.cs
- AdCreatedEventArgs.cs
- Rotation3DKeyFrameCollection.cs
- SplitterEvent.cs
- RelationalExpressions.cs
- DesignerDeviceConfig.cs
- SimpleWorkerRequest.cs
- ContextProperty.cs
- ComPlusDiagnosticTraceSchemas.cs
- UserControl.cs
- FilePrompt.cs
- AuthenticationConfig.cs
- MarshalByValueComponent.cs
- WindowsHyperlink.cs
- StrongTypingException.cs
- KeyValueConfigurationCollection.cs
- Touch.cs
- EndpointPerformanceCounters.cs
- BezierSegment.cs
- XmlBufferReader.cs
- ListItemsCollectionEditor.cs
- QilReference.cs
- ApplicationFileParser.cs
- NGCSerializationManager.cs
- KeyInstance.cs
- ImageAnimator.cs
- QuaternionIndependentAnimationStorage.cs
- FormatConvertedBitmap.cs
- CodeSubDirectory.cs
- WebRequestModulesSection.cs
- XmlSchemaAttribute.cs
- UIElementHelper.cs
- SQLMoney.cs
- FactoryMaker.cs
- OutputCacheProfile.cs
- LinqDataSourceContextData.cs
- TrackingStringDictionary.cs
- InvalidPipelineStoreException.cs
- DrawingBrush.cs
- ToolStripItemEventArgs.cs
- Exceptions.cs
- MailWriter.cs
- SqlFileStream.cs
- CssClassPropertyAttribute.cs
- BroadcastEventHelper.cs
- ImageSourceValueSerializer.cs
- GridPattern.cs
- MethodExpr.cs
- WindowAutomationPeer.cs
- XPathSingletonIterator.cs
- ListSourceHelper.cs
- DesignerDataTableBase.cs
- CriticalHandle.cs
- ChangeToolStripParentVerb.cs
- UnsafeNativeMethods.cs
- DashStyle.cs
- Internal.cs
- Figure.cs
- MailWriter.cs
- ActivityInterfaces.cs
- ListViewTableRow.cs
- SQLGuid.cs
- ZipIOModeEnforcingStream.cs
- XmlMtomReader.cs
- CustomCredentialPolicy.cs
- InvariantComparer.cs
- HostedElements.cs
- Quad.cs
- LinkedList.cs
- ToolStripPanelRenderEventArgs.cs
- Deflater.cs
- EntityDataSourceColumn.cs
- WebBrowserEvent.cs
- EdgeProfileValidation.cs
- DataSourceXmlSerializationAttribute.cs