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
- ShaderEffect.cs
- DuplicateContext.cs
- BaseTemplateParser.cs
- PropertyValueChangedEvent.cs
- OdbcConnectionHandle.cs
- MenuItemBindingCollection.cs
- ReadWriteObjectLock.cs
- DataGridViewCellCollection.cs
- UIElementPropertyUndoUnit.cs
- _FtpControlStream.cs
- DataServiceHostFactory.cs
- SqlInfoMessageEvent.cs
- RadioButton.cs
- AvtEvent.cs
- _KerberosClient.cs
- CopyAttributesAction.cs
- DataBindingCollection.cs
- SQLCharsStorage.cs
- RectangleF.cs
- Frame.cs
- ScrollProviderWrapper.cs
- OdbcDataReader.cs
- Compilation.cs
- BridgeDataRecord.cs
- _ConnectOverlappedAsyncResult.cs
- DataRelationPropertyDescriptor.cs
- HttpModuleActionCollection.cs
- ConnectionInterfaceCollection.cs
- IncrementalHitTester.cs
- ControlUtil.cs
- FormViewInsertedEventArgs.cs
- ListView.cs
- NullReferenceException.cs
- ObjectDataSourceStatusEventArgs.cs
- InternalTransaction.cs
- CombinedGeometry.cs
- TextParagraphProperties.cs
- OledbConnectionStringbuilder.cs
- ToolboxItem.cs
- SafeSystemMetrics.cs
- CompilerState.cs
- FixedTextContainer.cs
- AsymmetricKeyExchangeDeformatter.cs
- X509Certificate2Collection.cs
- OdbcDataReader.cs
- AssemblyNameProxy.cs
- PageThemeCodeDomTreeGenerator.cs
- BrowserDefinitionCollection.cs
- Baml2006KeyRecord.cs
- BuildResult.cs
- ExternalDataExchangeService.cs
- ResourceBinder.cs
- DispatcherHookEventArgs.cs
- ContentPosition.cs
- TextEmbeddedObject.cs
- TextDecorationLocationValidation.cs
- WebEncodingValidator.cs
- DynamicPropertyHolder.cs
- RegexCharClass.cs
- FixedBufferAttribute.cs
- BinaryWriter.cs
- XmlSiteMapProvider.cs
- KeyboardDevice.cs
- WorkflowDefinitionDispenser.cs
- DataGridViewCellStyleConverter.cs
- DataReceivedEventArgs.cs
- WinEventWrap.cs
- FileDetails.cs
- ScrollChangedEventArgs.cs
- XXXOnTypeBuilderInstantiation.cs
- DynamicQueryStringParameter.cs
- TextEffectResolver.cs
- ConfigurationSectionCollection.cs
- TextDecorationUnitValidation.cs
- LocationReferenceEnvironment.cs
- ObjectSecurityT.cs
- MSAAWinEventWrap.cs
- MessageHeader.cs
- PolyBezierSegment.cs
- SecurityKeyEntropyMode.cs
- dsa.cs
- JsonQueryStringConverter.cs
- SevenBitStream.cs
- TimelineClockCollection.cs
- ApplicationProxyInternal.cs
- UriSectionData.cs
- _IPv4Address.cs
- Link.cs
- RowParagraph.cs
- SessionParameter.cs
- CorrelationManager.cs
- relpropertyhelper.cs
- PenCursorManager.cs
- ArrayTypeMismatchException.cs
- ValueUtilsSmi.cs
- View.cs
- DbConnectionPoolGroup.cs
- WebEvents.cs
- WebPartUserCapability.cs
- HttpModuleAction.cs