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
- ScrollViewerAutomationPeer.cs
- FormattedText.cs
- SingleKeyFrameCollection.cs
- ResetableIterator.cs
- EdmScalarPropertyAttribute.cs
- DataGridViewCellPaintingEventArgs.cs
- TabControl.cs
- X509Chain.cs
- InputBinder.cs
- EntityException.cs
- Regex.cs
- Wildcard.cs
- PathFigure.cs
- ConfigXmlDocument.cs
- CodeVariableReferenceExpression.cs
- ParagraphVisual.cs
- RegexBoyerMoore.cs
- SqlConnectionStringBuilder.cs
- SqlCachedBuffer.cs
- DataGridViewLayoutData.cs
- DataGridViewComboBoxColumn.cs
- PathFigure.cs
- URLString.cs
- BrowserCapabilitiesFactoryBase.cs
- SerialPinChanges.cs
- MissingManifestResourceException.cs
- DesignerUtils.cs
- Brush.cs
- CustomErrorsSection.cs
- MSAANativeProvider.cs
- StrongNameIdentityPermission.cs
- DSASignatureDeformatter.cs
- Operators.cs
- SqlDataSourceDesigner.cs
- XmlCollation.cs
- XpsSerializerWriter.cs
- TraceHwndHost.cs
- PreservationFileReader.cs
- EntityDataSourceContextDisposingEventArgs.cs
- SimpleApplicationHost.cs
- MergeExecutor.cs
- XPathQueryGenerator.cs
- DocumentSequenceHighlightLayer.cs
- Publisher.cs
- DropShadowBitmapEffect.cs
- SerializationUtility.cs
- Label.cs
- UdpContractFilterBehavior.cs
- EntityDataSourceWrapperCollection.cs
- ModuleBuilder.cs
- DataPagerField.cs
- SQLMoney.cs
- DependencyObjectProvider.cs
- ColumnMapProcessor.cs
- LiteralControl.cs
- FlowDocumentScrollViewer.cs
- _ProxyRegBlob.cs
- UserControlAutomationPeer.cs
- ThicknessKeyFrameCollection.cs
- HandlerBase.cs
- CalendarTable.cs
- ExceptionNotification.cs
- InvalidProgramException.cs
- InvalidPropValue.cs
- RSAPKCS1SignatureFormatter.cs
- ConstraintEnumerator.cs
- TextProviderWrapper.cs
- PasswordDeriveBytes.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- SystemFonts.cs
- ArglessEventHandlerProxy.cs
- Query.cs
- SqlCacheDependency.cs
- TabControlCancelEvent.cs
- XmlDataContract.cs
- ArraySegment.cs
- PersistChildrenAttribute.cs
- Calendar.cs
- AssociationTypeEmitter.cs
- Fonts.cs
- ExeConfigurationFileMap.cs
- CodeEntryPointMethod.cs
- ProfileGroupSettingsCollection.cs
- NotifyIcon.cs
- SafeNativeMethods.cs
- IconBitmapDecoder.cs
- ObjectSecurity.cs
- AnonymousIdentificationSection.cs
- TableCell.cs
- VisualStyleElement.cs
- GeometryDrawing.cs
- WebPartDescriptionCollection.cs
- GlobalDataBindingHandler.cs
- ErrorLog.cs
- DispatcherFrame.cs
- WebHttpEndpointElement.cs
- ImplicitInputBrush.cs
- NumberSubstitution.cs
- FileDetails.cs
- RegisteredExpandoAttribute.cs