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
- SemanticResolver.cs
- InputGestureCollection.cs
- OverflowException.cs
- Model3DCollection.cs
- WebPartDescriptionCollection.cs
- LongCountAggregationOperator.cs
- returneventsaver.cs
- XPathNavigatorKeyComparer.cs
- NonVisualControlAttribute.cs
- RefExpr.cs
- SafeFileMappingHandle.cs
- SecurityTokenReferenceStyle.cs
- MenuRendererStandards.cs
- TraceEventCache.cs
- XamlStream.cs
- QueryReaderSettings.cs
- RolePrincipal.cs
- HttpCookie.cs
- PrintDialogException.cs
- HttpWrapper.cs
- ExecutionContext.cs
- XmlDataSourceView.cs
- MultiPropertyDescriptorGridEntry.cs
- BooleanFunctions.cs
- Timer.cs
- BasePropertyDescriptor.cs
- SHA256.cs
- DynamicResourceExtension.cs
- FilteredReadOnlyMetadataCollection.cs
- DataPager.cs
- DataViewSettingCollection.cs
- Int32RectConverter.cs
- ComplexBindingPropertiesAttribute.cs
- DetailsViewRowCollection.cs
- EventWaitHandleSecurity.cs
- TextRunTypographyProperties.cs
- Matrix.cs
- DriveInfo.cs
- Typography.cs
- CodeTypeReferenceExpression.cs
- RecordsAffectedEventArgs.cs
- OrderingQueryOperator.cs
- CultureInfo.cs
- QilCloneVisitor.cs
- ImageSource.cs
- HttpVersion.cs
- AvtEvent.cs
- DataBoundControlHelper.cs
- CustomAttributeSerializer.cs
- HtmlTableRow.cs
- Renderer.cs
- CancellationTokenRegistration.cs
- ValueConversionAttribute.cs
- GAC.cs
- RSAOAEPKeyExchangeFormatter.cs
- StaticResourceExtension.cs
- QueryAccessibilityHelpEvent.cs
- PeerHopCountAttribute.cs
- OracleRowUpdatedEventArgs.cs
- CodeDelegateCreateExpression.cs
- ContentIterators.cs
- VisualProxy.cs
- TypeConverterAttribute.cs
- EdmToObjectNamespaceMap.cs
- EventHandlersStore.cs
- NativeMethods.cs
- DataRelation.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- UiaCoreTypesApi.cs
- TextShapeableCharacters.cs
- JpegBitmapDecoder.cs
- PointCollectionConverter.cs
- XPathParser.cs
- _HTTPDateParse.cs
- SqlEnums.cs
- ElementAction.cs
- XLinq.cs
- GraphicsState.cs
- FreezableOperations.cs
- OdbcUtils.cs
- XslTransform.cs
- ConfigXmlSignificantWhitespace.cs
- TextParagraphProperties.cs
- WebBrowser.cs
- TrackPoint.cs
- VersionedStreamOwner.cs
- TypeConverterAttribute.cs
- ToolBarTray.cs
- ConnectionStringsExpressionBuilder.cs
- TracedNativeMethods.cs
- LayoutDump.cs
- EnumDataContract.cs
- ButtonBaseAdapter.cs
- ChunkedMemoryStream.cs
- KoreanCalendar.cs
- MaskedTextBoxDesigner.cs
- RemoteCryptoTokenProvider.cs
- ContentPlaceHolder.cs
- TimeSpanStorage.cs
- DocumentGridContextMenu.cs