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
- KeyboardDevice.cs
- ProviderUtil.cs
- ProcessModule.cs
- ConnectAlgorithms.cs
- PKCS1MaskGenerationMethod.cs
- ComponentSerializationService.cs
- ImageButton.cs
- AssemblyName.cs
- NullableDecimalSumAggregationOperator.cs
- DynamicUpdateCommand.cs
- ToolStrip.cs
- XmlComplianceUtil.cs
- PriorityQueue.cs
- MarkupProperty.cs
- InvalidPrinterException.cs
- NumericUpDown.cs
- HttpHeaderCollection.cs
- DataBindingHandlerAttribute.cs
- SqlBuffer.cs
- SafeCryptContextHandle.cs
- ProviderBase.cs
- HttpWriter.cs
- CompositeActivityMarkupSerializer.cs
- AnalyzedTree.cs
- _AuthenticationState.cs
- NetworkInformationPermission.cs
- MinMaxParagraphWidth.cs
- RuntimeArgumentHandle.cs
- PresentationTraceSources.cs
- CodeVariableReferenceExpression.cs
- namescope.cs
- RequestSecurityTokenResponseCollection.cs
- ContentHostHelper.cs
- PlanCompilerUtil.cs
- HttpWebRequest.cs
- FieldInfo.cs
- ProjectionCamera.cs
- IdnElement.cs
- DelegatingHeader.cs
- SrgsDocumentParser.cs
- Label.cs
- ValidationEventArgs.cs
- CheckBoxList.cs
- Clock.cs
- NamedElement.cs
- TableLayoutRowStyleCollection.cs
- MatrixIndependentAnimationStorage.cs
- SelectedGridItemChangedEvent.cs
- SystemKeyConverter.cs
- DelayedRegex.cs
- CodeDelegateInvokeExpression.cs
- BackEase.cs
- Parameter.cs
- ArraySegment.cs
- MethodCallTranslator.cs
- SqlDataSourceView.cs
- MobileControlsSectionHandler.cs
- MappedMetaModel.cs
- ToolStripPanelDesigner.cs
- View.cs
- OleDbInfoMessageEvent.cs
- ReaderWriterLock.cs
- BrushProxy.cs
- WrapPanel.cs
- RefreshEventArgs.cs
- CodeGotoStatement.cs
- Decoder.cs
- NetStream.cs
- DoubleAnimationBase.cs
- ContentElement.cs
- StreamInfo.cs
- DataProtectionSecurityStateEncoder.cs
- IdnElement.cs
- OracleBFile.cs
- HtmlInputPassword.cs
- ipaddressinformationcollection.cs
- BufferModeSettings.cs
- ContextBase.cs
- PenContexts.cs
- ControlBuilder.cs
- CodeMemberEvent.cs
- QueryCacheManager.cs
- ReadOnlyCollectionBase.cs
- PlaceHolder.cs
- WebHttpBehavior.cs
- KeyValuePair.cs
- Math.cs
- LabelEditEvent.cs
- AccessViolationException.cs
- RadioButtonList.cs
- TransactionOptions.cs
- EditorPart.cs
- LineServicesRun.cs
- ThaiBuddhistCalendar.cs
- HtmlToClrEventProxy.cs
- ButtonColumn.cs
- DataGridViewRowsAddedEventArgs.cs
- ScriptResourceAttribute.cs
- ConfigurationSectionGroup.cs
- Bits.cs