Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Utility / TraceLog.cs / 1305600 / 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
- SmtpTransport.cs
- FlowNode.cs
- Method.cs
- FixedSOMTextRun.cs
- MessageBox.cs
- ValidationRuleCollection.cs
- SingleKeyFrameCollection.cs
- DBSqlParserColumn.cs
- SerializationInfoEnumerator.cs
- SessionStateUtil.cs
- Resources.Designer.cs
- GetMemberBinder.cs
- DataRowIndexBuffer.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- DeobfuscatingStream.cs
- DataContractFormatAttribute.cs
- ApplicationServiceHelper.cs
- CompilerCollection.cs
- ActivityWithResultWrapper.cs
- BindingList.cs
- DelayedRegex.cs
- AliasedSlot.cs
- SqlWebEventProvider.cs
- NavigationExpr.cs
- FieldNameLookup.cs
- latinshape.cs
- SerialPinChanges.cs
- AssemblyCache.cs
- ExpandCollapsePattern.cs
- WebPartMovingEventArgs.cs
- WebEventTraceProvider.cs
- _RequestCacheProtocol.cs
- Exceptions.cs
- ProxyGenerator.cs
- PolicyException.cs
- HttpWrapper.cs
- Enlistment.cs
- StreamFormatter.cs
- WindowsSidIdentity.cs
- AssemblyHelper.cs
- SqlEnums.cs
- DataGridViewCellEventArgs.cs
- Utils.cs
- Int64Storage.cs
- ComponentResourceKeyConverter.cs
- ToolStripItemEventArgs.cs
- RuleInfoComparer.cs
- WhitespaceReader.cs
- NetworkInformationPermission.cs
- WebPartRestoreVerb.cs
- ProtectedConfiguration.cs
- BindingCompleteEventArgs.cs
- ConvertersCollection.cs
- AVElementHelper.cs
- XmlElementList.cs
- AuthStoreRoleProvider.cs
- DrawingBrush.cs
- RecognizerStateChangedEventArgs.cs
- CorrelationTokenInvalidatedHandler.cs
- StylusPointCollection.cs
- CodeArrayIndexerExpression.cs
- MsmqChannelFactory.cs
- ServiceContractViewControl.Designer.cs
- FusionWrap.cs
- BitmapMetadataBlob.cs
- MessageBox.cs
- IFlowDocumentViewer.cs
- x509store.cs
- ExtensionQuery.cs
- XmlTypeAttribute.cs
- WebConfigurationHostFileChange.cs
- QueueAccessMode.cs
- XmlFormatExtensionAttribute.cs
- PipelineModuleStepContainer.cs
- BuildDependencySet.cs
- XmlWrappingReader.cs
- LateBoundBitmapDecoder.cs
- RemoteArgument.cs
- SafeMemoryMappedFileHandle.cs
- PageContentAsyncResult.cs
- MailMessageEventArgs.cs
- XmlSchema.cs
- TreeWalkHelper.cs
- UnsupportedPolicyOptionsException.cs
- XamlWrapperReaders.cs
- XmlWriter.cs
- BufferedGraphicsContext.cs
- PolicyChain.cs
- EmbeddedMailObjectsCollection.cs
- EncodingNLS.cs
- LinqDataSourceInsertEventArgs.cs
- HandoffBehavior.cs
- XmlLoader.cs
- FixedSOMPageElement.cs
- PeerObject.cs
- RunInstallerAttribute.cs
- AtomParser.cs
- XNameTypeConverter.cs
- EventSinkActivityDesigner.cs
- XPathNavigator.cs