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
- SqlClientWrapperSmiStream.cs
- UriTemplateTrieLocation.cs
- FastPropertyAccessor.cs
- SystemIPInterfaceProperties.cs
- ReflectTypeDescriptionProvider.cs
- ArgumentElement.cs
- BindableTemplateBuilder.cs
- RTLAwareMessageBox.cs
- BasePropertyDescriptor.cs
- RtfToXamlReader.cs
- ListSortDescriptionCollection.cs
- Stacktrace.cs
- LightweightCodeGenerator.cs
- PlanCompiler.cs
- dbenumerator.cs
- MappedMetaModel.cs
- ActivityWithResult.cs
- Preprocessor.cs
- MergablePropertyAttribute.cs
- CookieProtection.cs
- ExpressionServices.cs
- PersonalizableAttribute.cs
- PropertyGridEditorPart.cs
- StyleXamlParser.cs
- SafeNativeMemoryHandle.cs
- DateTime.cs
- ProxyWebPartManager.cs
- CodeObjectCreateExpression.cs
- ZoneLinkButton.cs
- DefinitionBase.cs
- Exception.cs
- EventLogEntry.cs
- ZoneButton.cs
- GeometryHitTestParameters.cs
- Base64WriteStateInfo.cs
- DSACryptoServiceProvider.cs
- BidPrivateBase.cs
- BrowserCapabilitiesCodeGenerator.cs
- ObjectDataSource.cs
- EdmComplexPropertyAttribute.cs
- WmiEventSink.cs
- streamingZipPartStream.cs
- BamlRecords.cs
- HideDisabledControlAdapter.cs
- HostAdapter.cs
- PropertyTabChangedEvent.cs
- BitStream.cs
- Bidi.cs
- FreezableOperations.cs
- TopClause.cs
- TableLayoutRowStyleCollection.cs
- Imaging.cs
- QilNode.cs
- List.cs
- DataViewSettingCollection.cs
- BaseDataBoundControl.cs
- CodeDirectiveCollection.cs
- ListViewUpdatedEventArgs.cs
- RoleService.cs
- NotSupportedException.cs
- UdpDiscoveryEndpointProvider.cs
- FileSystemInfo.cs
- ChangesetResponse.cs
- XmlDictionaryWriter.cs
- BeginEvent.cs
- AttachmentService.cs
- RIPEMD160.cs
- OSEnvironmentHelper.cs
- ContentElement.cs
- JavaScriptString.cs
- BaseDataList.cs
- Formatter.cs
- ParameterToken.cs
- FormView.cs
- PageThemeBuildProvider.cs
- XmlSchemaAnnotated.cs
- wmiutil.cs
- BridgeDataReader.cs
- CodeDirectionExpression.cs
- OdbcInfoMessageEvent.cs
- LeftCellWrapper.cs
- LocalizationParserHooks.cs
- InfiniteTimeSpanConverter.cs
- StaticFileHandler.cs
- ScriptControlDescriptor.cs
- ListSortDescriptionCollection.cs
- PagedControl.cs
- LeaseManager.cs
- HeaderUtility.cs
- OleDbFactory.cs
- RuleProcessor.cs
- DNS.cs
- EventItfInfo.cs
- RayMeshGeometry3DHitTestResult.cs
- ToolStripContainerDesigner.cs
- XmlNamespaceMapping.cs
- _HelperAsyncResults.cs
- FilteredAttributeCollection.cs
- XmlNodeReader.cs
- XPathDocumentNavigator.cs