The System.Diagnostics namespace provides classes that allow you to interact with system processes, event logs, and performance counters.
The System.Diagnostics.EventLog component provides functionality to write to event logs, read event log entries, and create and delete event logs and event sources on the network. The System.Diagnostics.EntryWrittenEventHandler provides a way to interact with event logs asynchronously. Supporting classes provide access to more detailed control, including: permission restrictions, the ability to specify event log types (which controls the type of default data that is written with an event log entry), and iterate through collections of event log entries. For more information about these tasks, see the System.Diagnostics.EventLogPermission, System.Diagnostics.EventLogEntryType, and System.Diagnostics.EventLogEntryCollection classes.
The System.Diagnostics.Process class provides functionality to monitor system processes across the network, and to start and stop local system processes. In addition to retrieving lists of running processes (by specifying either the computer, the process name, or the process id) or viewing information about the process that currently has access to the processor, you can get detailed knowledge of process threads and modules both through the System.Diagnostics.Process class itself, and by interacting with the System.Diagnostics.ProcessThread and System.Diagnostics.ProcessModule classes. The System.Diagnostics.ProcessStartInfo class enables you to specify a variety of elements with which to start a new process, such as input, output, and error streams, working directories, and command line verbs and arguments. These give you fine control over the behavior of your processes. Other related classes let you specify window styles, process and thread priorities, and interact with collections of threads and modules.
The System.Diagnostics.PerformanceCounter class enables you to monitor system performance, while the System.Diagnostics.PerformanceCounterCategory class provides a way to create new custom counters and categories. You can write to local custom counters and read from both local and remote counters (system as well as custom). You can sample counters using the System.Diagnostics.PerformanceCounter class, and calculate results from successive performance counter samples using the System.Diagnostics.CounterSample class. The System.Diagnostics.CounterCreationData class enables you to create multiple counters in a category and specify their types. Other classes associated with the performance counter component provide access to collections of counters, counter permission, and counter types.
The System.Diagnostics namespace also provides classes that allow you to debug your application and to trace the execution of your code. For more information, see the System.Diagnostics.Trace and System.Diagnostics.Debug classes.
Type | Reason |
---|---|
BooleanSwitch |
Provides a simple on/off switch that controls debugging and tracing output. |
ConditionalAttribute |
Indicates to compilers that a method call or attribute should be ignored unless a specified conditional compilation symbol is defined. |
ConsoleTraceListener |
Directs tracing or debugging output to either the standard output or the standard error stream. |
CorrelationManager |
Correlates traces that are part of a logical transaction. |
CounterCreationData |
Defines the counter type, name, and Help string for a custom counter. |
CounterCreationDataCollection |
Provides a strongly typed collection of System.Diagnostics.CounterCreationData objects. |
CounterSample |
Defines a structure that holds the raw data for a performance counter. |
CounterSampleCalculator |
Provides a set of utility functions for interpreting performance counter data. |
DataReceivedEventArgs |
Provides data for the System.Diagnostics.Process.OutputDataReceived and System.Diagnostics.Process.ErrorDataReceived events. |
DataReceivedEventHandler |
Represents the method that will handle the System.Diagnostics.Process.OutputDataReceived event or System.Diagnostics.Process.ErrorDataReceived event of a System.Diagnostics.Process. |
Debug |
Provides a set of methods and properties that help debug your code. This class cannot be inherited. |
DebuggableAttribute |
Modifies code generation for runtime just-in-time (JIT) debugging. This class cannot be inherited. |
DebuggableAttribute+DebuggingModes | Documentation for this section has not yet been entered. |
Debugger |
Enables communication with a debugger. This class cannot be inherited. |
DebuggerBrowsableAttribute |
Determines if and how a member is displayed in the debugger variable windows. This class cannot be inherited. |
DebuggerBrowsableState |
Provides display instructions for the debugger. |
DebuggerDisplayAttribute |
Determines how a class or field is displayed in the debugger variable windows. |
DebuggerHiddenAttribute |
Specifies the System.Diagnostics.DebuggerHiddenAttribute. This class cannot be inherited. |
DebuggerNonUserCodeAttribute |
Identifies a type or member that is not part of the user code for an application. |
DebuggerStepperBoundaryAttribute |
Indicates the code following the attribute is to be executed in run, not step, mode. |
DebuggerStepThroughAttribute |
Instructs the debugger to step through the code instead of stepping into the code. This class cannot be inherited. |
DebuggerTypeProxyAttribute |
Specifies the display proxy for a type. |
DebuggerVisualizerAttribute |
Specifies that the type has a visualizer. This class cannot be inherited. |
DefaultTraceListener |
Provides the default output methods and behavior for tracing. |
DelimitedListTraceListener |
Directs tracing or debugging output to a text writer, such as a stream writer, or to a stream, such as a file stream. |
DiagnosticsConfigurationHandler |
Handles the diagnostics section of configuration files. |
EntryWrittenEventArgs |
Provides data for the System.Diagnostics.EventLog.EntryWritten event. |
EntryWrittenEventHandler |
Represents the method that will handle the System.Diagnostics.EventLog.EntryWritten event of an System.Diagnostics.EventLog. |
EventInstance |
Represents language-neutral information for an event log entry. |
EventLog |
Provides interaction with Windows event logs. |
EventLogEntry |
Encapsulates a single record in the event log. This class cannot be inherited. |
EventLogEntryCollection |
Defines size and enumerators for a collection of System.Diagnostics.EventLogEntry instances. |
EventLogEntryType |
Specifies the event type of an event log entry. |
EventLogInstaller |
Allows you to install and configure an event log that your application reads from or writes to when running. |
EventLogPermission |
Controls code access permissions for event logging. |
EventLogPermissionAccess |
Defines access levels used by System.Diagnostics.EventLog permission classes. |
EventLogPermissionAttribute |
Allows declaritive permission checks for event logging. |
EventLogPermissionEntry |
Defines the smallest unit of a code access security permission that is set for an System.Diagnostics.EventLog. |
EventLogPermissionEntryCollection |
Contains a strongly typed collection of System.Diagnostics.EventLogPermissionEntry objects. |
EventLogTraceListener |
Provides a simple listener that directs tracing or debugging output to an System.Diagnostics.EventLog. |
EventSourceCreationData |
Represents the configuration settings used to create an event log source on the local computer or a remote computer. |
EventTypeFilter |
Indicates whether a listener should trace based on the event type. |
FileVersionInfo |
Provides version information for a physical file on disk. |
ICollectData |
Prepares performance data for the performance DLL the system loads when working with performance counters. |
InstanceData |
Holds instance data associated with a performance counter sample. |
InstanceDataCollection |
Provides a strongly typed collection of System.Diagnostics.InstanceData objects. |
InstanceDataCollectionCollection |
Provides a strongly typed collection of System.Diagnostics.InstanceDataCollection objects. |
MonitoringDescriptionAttribute |
Specifies a description for a property or event. |
OverflowAction |
Specifies how to handle entries in an event log that has reached its maximum file size. |
PerformanceCounter |
Represents a Windows NT performance counter component. |
PerformanceCounterCategory |
Represents a performance object, which defines a category of performance counters. |
PerformanceCounterCategoryType |
Indicates whether the performance counter category can have multiple instances. |
PerformanceCounterInstaller |
Specifies an installer for the System.Diagnostics.PerformanceCounter component. |
PerformanceCounterInstanceLifetime |
Specifies the lifetime of a performance counter instance. |
PerformanceCounterManager |
Prepares performance data for the performance.dll the system loads when working with performance counters. |
PerformanceCounterPermission |
Allows control of code access permissions for System.Diagnostics.PerformanceCounter. |
PerformanceCounterPermissionAccess |
Defines access levels used by System.Diagnostics.PerformanceCounter permission classes. |
PerformanceCounterPermissionAttribute |
Allows declaritive performance counter permission checks. |
PerformanceCounterPermissionEntry |
Defines the smallest unit of a code access security permission that is set for a System.Diagnostics.PerformanceCounter. |
PerformanceCounterPermissionEntryCollection |
Contains a strongly typed collection of System.Diagnostics.PerformanceCounterPermissionEntry objects. |
PerformanceCounterType |
Specifies the formula used to calculate the System.Diagnostics.PerformanceCounter.NextValue method for a System.Diagnostics.PerformanceCounter instance. |
Process |
Provides access to local and remote processes and enables you to start and stop local system processes. |
ProcessModule |
Represents a.dll or .exe file that is loaded into a particular process. |
ProcessModuleCollection |
Provides a strongly typed collection of System.Diagnostics.ProcessModule objects. |
ProcessPriorityClass |
Indicates the priority that the system associates with a process. This value, together with the priority value of each thread of the process, determines each thread's base priority level. |
ProcessStartInfo |
Specifies a set of values that are used when you start a process. |
ProcessThread |
Represents an operating system process thread. |
ProcessThreadCollection |
Provides a strongly typed collection of System.Diagnostics.ProcessThread objects. |
ProcessWindowStyle |
Specified how a new window should appear when the system starts a process. |
SourceFilter |
Indicates whether a listener should trace a message based on the source of a trace. |
SourceLevels |
Specifies the levels of trace messages filtered by the source switch and event type filter. |
SourceSwitch |
Provides a multilevel switch to control tracing and debug output without recompiling your code. |
StackFrame |
Provides information about a System.Diagnostics.StackFrame, which represents a function call on the call stack for the current thread. |
StackTrace |
Represents a stack trace, which is an ordered collection of one or more stack frames. |
Stopwatch |
Provides a set of methods and properties that you can use to accurately measure elapsed time. |
Switch |
Provides an abstract base class to create new debugging and tracing switches. |
SwitchAttribute |
Identifies a switch used in an assembly, class, or member. |
SwitchLevelAttribute |
Identifies the level type for a switch. |
TextWriterTraceListener |
Directs tracing or debugging output to a System.IO.TextWriter or to a System.IO.Stream, such as System.IO.FileStream. |
ThreadPriorityLevel |
Specifies the priority level of a thread. |
ThreadState |
Specifies the current execution state of the thread. |
ThreadWaitReason |
Specifies the reason a thread is waiting. |
Trace |
Provides a set of methods and properties that help you trace the execution of your code. This class cannot be inherited. |
TraceEventCache |
Provides trace event data specific to a thread and a process. |
TraceEventType |
Identifies the type of event that has caused the trace. |
TraceFilter |
Provides the base class for trace filter implementations. |
TraceLevel |
Specifies what messages to output for the System.Diagnostics.Debug, System.Diagnostics.Trace and System.Diagnostics.TraceSwitch classes. |
TraceListener |
Provides the abstract base class for the listeners who monitor trace and debug output. |
TraceListenerCollection |
Provides a thread-safe list of System.Diagnostics.TraceListener objects. |
TraceOptions |
Specifies trace data options to be written to the trace output. |
TraceSource |
Provides a set of methods and properties that enable applications to trace the execution of code and associate trace messages with their source. |
TraceSwitch |
Provides a multilevel switch to control tracing and debug output without recompiling your code. |
XmlWriterTraceListener |
Directs tracing or debugging output as XML-encoded data to a System.IO.TextWriter or to a System.IO.Stream, such as a System.IO.FileStream. |