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
- Aes.cs
- PartManifestEntry.cs
- XamlSerializerUtil.cs
- ArrayConverter.cs
- TTSVoice.cs
- HasCopySemanticsAttribute.cs
- TrackingCondition.cs
- FamilyTypeface.cs
- ResourceExpressionBuilder.cs
- ReadOnlyCollectionBuilder.cs
- DockPanel.cs
- BaseDataList.cs
- LayoutSettings.cs
- HelpEvent.cs
- Partitioner.cs
- EmptyReadOnlyDictionaryInternal.cs
- SerializationAttributes.cs
- Vertex.cs
- OdbcCommand.cs
- Mouse.cs
- IsolatedStoragePermission.cs
- SynchronizationContext.cs
- ConfigurationPermission.cs
- UniqueConstraint.cs
- NotifyCollectionChangedEventArgs.cs
- XamlBuildTaskServices.cs
- ResourceReader.cs
- LogManagementAsyncResult.cs
- ScriptMethodAttribute.cs
- ComboBox.cs
- BufferModesCollection.cs
- ErrorItem.cs
- LinearGradientBrush.cs
- XmlAttributeOverrides.cs
- TextRangeEditTables.cs
- NaturalLanguageHyphenator.cs
- KeyedHashAlgorithm.cs
- ResourceSet.cs
- VSWCFServiceContractGenerator.cs
- AssemblyInfo.cs
- XPathConvert.cs
- StreamHelper.cs
- NativeMethods.cs
- PageContentCollection.cs
- FormClosedEvent.cs
- DispatchWrapper.cs
- SynchronousChannel.cs
- XMLUtil.cs
- ConditionCollection.cs
- TemplateBuilder.cs
- WebPartEventArgs.cs
- XXXOnTypeBuilderInstantiation.cs
- SqlDataSourceConfigureSortForm.cs
- CustomCredentialPolicy.cs
- HtmlInputRadioButton.cs
- GridViewHeaderRowPresenter.cs
- ProfileInfo.cs
- LifetimeServices.cs
- CharacterBufferReference.cs
- TextEffectCollection.cs
- TreeViewItemAutomationPeer.cs
- documentsequencetextview.cs
- HtmlLink.cs
- SiteMapNode.cs
- EnumerationRangeValidationUtil.cs
- EntityDesignerBuildProvider.cs
- ZoneIdentityPermission.cs
- loginstatus.cs
- GlobalItem.cs
- ConfigurationStrings.cs
- DrawingImage.cs
- PackageDigitalSignature.cs
- CommandExpr.cs
- ImageList.cs
- PolicyStatement.cs
- CommandExpr.cs
- AssemblyHash.cs
- VSDExceptions.cs
- WebPartPersonalization.cs
- SoapSchemaExporter.cs
- DbConnectionInternal.cs
- RegistryDataKey.cs
- TextBoxBase.cs
- ParserOptions.cs
- SizeChangedInfo.cs
- StateMachineWorkflowInstance.cs
- Bitmap.cs
- DragEventArgs.cs
- Viewport2DVisual3D.cs
- XamlGridLengthSerializer.cs
- ParserHooks.cs
- TextSyndicationContent.cs
- DSASignatureDeformatter.cs
- StyleSheetComponentEditor.cs
- DataBindingHandlerAttribute.cs
- ToolboxItem.cs
- EnumerableCollectionView.cs
- Guid.cs
- SQlBooleanStorage.cs
- Freezable.cs