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
- ServicePoint.cs
- VariableAction.cs
- PageWrapper.cs
- WindowsGrip.cs
- BmpBitmapEncoder.cs
- MetadataArtifactLoaderResource.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- CompiledRegexRunner.cs
- SmiRequestExecutor.cs
- TrackingProfileCache.cs
- ProfileEventArgs.cs
- ChannelManagerHelpers.cs
- ExpressionEditorAttribute.cs
- CodeSnippetTypeMember.cs
- HttpRequest.cs
- HostExecutionContextManager.cs
- Helper.cs
- DataKey.cs
- StateWorkerRequest.cs
- TraceEventCache.cs
- DefaultTextStoreTextComposition.cs
- XsdBuilder.cs
- FileNotFoundException.cs
- SkewTransform.cs
- LogConverter.cs
- ClonableStack.cs
- hresults.cs
- XmlAnyAttributeAttribute.cs
- InternalPermissions.cs
- Comparer.cs
- EnvelopedSignatureTransform.cs
- SerialStream.cs
- ProcessHostMapPath.cs
- HtmlHistory.cs
- MetricEntry.cs
- ExpandCollapsePatternIdentifiers.cs
- ControlPaint.cs
- ListViewDataItem.cs
- ThemeableAttribute.cs
- CommonProperties.cs
- WSHttpSecurityElement.cs
- VirtualPathData.cs
- TemplateXamlParser.cs
- XMLDiffLoader.cs
- Int32Rect.cs
- HelpInfo.cs
- XmlSchemaComplexContentRestriction.cs
- TypeSystemProvider.cs
- DbXmlEnabledProviderManifest.cs
- MenuCommand.cs
- TableAdapterManagerMethodGenerator.cs
- SingleAnimationBase.cs
- ExpressionTable.cs
- ChannelBuilder.cs
- MatrixCamera.cs
- DoubleLinkListEnumerator.cs
- BitmapEffect.cs
- GeneralTransform3D.cs
- ToolStripContainerActionList.cs
- AppDomainShutdownMonitor.cs
- PropertyRef.cs
- FigureParaClient.cs
- RemotingConfigParser.cs
- ConfigXmlWhitespace.cs
- PropertyDescriptors.cs
- HtmlMeta.cs
- AttributeData.cs
- EventLogEntryCollection.cs
- VectorCollectionValueSerializer.cs
- PrintPageEvent.cs
- StylusDownEventArgs.cs
- SqlProcedureAttribute.cs
- TypeUsageBuilder.cs
- HuffCodec.cs
- DateTime.cs
- ClientSideQueueItem.cs
- RuntimeConfigurationRecord.cs
- BaseValidatorDesigner.cs
- XmlSchemaSimpleContentExtension.cs
- DocumentViewerConstants.cs
- CommandValueSerializer.cs
- CookieProtection.cs
- StateDesigner.cs
- SingleTagSectionHandler.cs
- Mapping.cs
- EtwTrace.cs
- ConstraintEnumerator.cs
- CssStyleCollection.cs
- GeneratedCodeAttribute.cs
- DataTableTypeConverter.cs
- Environment.cs
- SafeThemeHandle.cs
- SymbolPair.cs
- Interlocked.cs
- UnicastIPAddressInformationCollection.cs
- DataControlPagerLinkButton.cs
- RegionInfo.cs
- HtmlLink.cs
- ResizeGrip.cs
- ToolStripHighContrastRenderer.cs