Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- FixedPageAutomationPeer.cs
- TableCellCollection.cs
- ItemAutomationPeer.cs
- BitmapSizeOptions.cs
- SafeRightsManagementPubHandle.cs
- HandleDictionary.cs
- InstanceDataCollectionCollection.cs
- ThicknessAnimation.cs
- Size.cs
- CompModSwitches.cs
- GeneralTransform3D.cs
- QilStrConcatenator.cs
- AudioFormatConverter.cs
- ExpressionParser.cs
- EdmEntityTypeAttribute.cs
- DrawToolTipEventArgs.cs
- FormsAuthentication.cs
- AssemblyResourceLoader.cs
- UrlMappingsSection.cs
- X509Extension.cs
- FunctionImportElement.cs
- BindingsCollection.cs
- DBConcurrencyException.cs
- ColorMap.cs
- ContentPresenter.cs
- Matrix.cs
- Clause.cs
- WinInetCache.cs
- DockAndAnchorLayout.cs
- RectKeyFrameCollection.cs
- DataListCommandEventArgs.cs
- ReaderWriterLockSlim.cs
- HostProtectionPermission.cs
- ToolStrip.cs
- NullableDecimalSumAggregationOperator.cs
- PartitionerQueryOperator.cs
- AsymmetricKeyExchangeFormatter.cs
- StorageMappingFragment.cs
- HighlightOverlayGlyph.cs
- SpotLight.cs
- IndexedWhereQueryOperator.cs
- PersianCalendar.cs
- SqlUtils.cs
- SettingsProviderCollection.cs
- MailHeaderInfo.cs
- SettingsPropertyValue.cs
- SymmetricKeyWrap.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- XmlDocumentSerializer.cs
- HitTestFilterBehavior.cs
- CalloutQueueItem.cs
- Binding.cs
- RestHandlerFactory.cs
- SqlError.cs
- CodeBinaryOperatorExpression.cs
- CompressedStack.cs
- PresentationAppDomainManager.cs
- XmlDataDocument.cs
- MatrixCamera.cs
- FileSecurity.cs
- SelectionEditingBehavior.cs
- ViewGenResults.cs
- MdiWindowListStrip.cs
- InputMethod.cs
- AuthenticationConfig.cs
- CustomErrorCollection.cs
- FontStyleConverter.cs
- ExceptionUtil.cs
- FileDialogPermission.cs
- ReplyAdapterChannelListener.cs
- ConstraintConverter.cs
- DependencyObject.cs
- Action.cs
- MemberDomainMap.cs
- IPipelineRuntime.cs
- ModelItemDictionaryImpl.cs
- WindowsStatusBar.cs
- StylusTip.cs
- BrushValueSerializer.cs
- ComponentCollection.cs
- ToggleButton.cs
- CollaborationHelperFunctions.cs
- FilteredReadOnlyMetadataCollection.cs
- DispatchWrapper.cs
- Application.cs
- ScaleTransform3D.cs
- NetCodeGroup.cs
- ValidateNames.cs
- ResXFileRef.cs
- WindowsStreamSecurityUpgradeProvider.cs
- TypeFieldSchema.cs
- CodeAttributeDeclaration.cs
- wgx_sdk_version.cs
- ThemeDirectoryCompiler.cs
- WebPartCancelEventArgs.cs
- DebugView.cs
- DoubleLink.cs
- OLEDB_Enum.cs
- BuildResult.cs
- OTFRasterizer.cs