Trace 类

提供一组帮助您跟踪代码执行情况的方法和属性。无法继承此类。

**命名空间:**System.Diagnostics
**程序集:**System(在 system.dll 中)

语法

声明
Public NotInheritable Class Trace
用法
Dim instance As Trace
public sealed class Trace
public ref class Trace sealed
public final class Trace
public final class Trace

备注

可以使用 Trace 类中的属性和方法来配置发布版本。通过检测可以监视以真实设置运行的应用程序的状态。跟踪则可以帮助您在不干扰系统运行的情况下隔离并修复问题。

提示

若要在 C# 中启用跟踪,请在编译代码时将 /d:TRACE 标志添加到编译器命令行中,或者可以将 #define TRACE 添加到文件的顶部。在 Visual Basic 中,将 /d:TRACE=True 标志添加到编译器命令行。若要在 C++ 中提供等效的功能,必须将对此类的方法的调用包含在 #ifdef TRACE... #endif 块中。该语法是编译器特定的语法。如果使用上面指定的编译器以外的编译器,则必须参考该编译器的文档以启用条件编译,因为条件编译属性置于 Trace 类的方法上。

在 Visual Studio 2005 项目中,默认情况下 Trace 处于启用状态。因此,代码为发布版本和调试版本中的所有 Trace 方法生成。这样,最终用户不必重新编译程序就可以打开跟踪来帮助识别问题。与之相比,默认情况下 Debug 在发布版本中禁用,因此没有可执行代码为 Debug 方法生成。若要禁用 Trace,请参见 Visual Studio 2005 文档。

此类提供显示 Assert 对话框的方法和提供发出将总是 Fail 的断言的方法。此类提供下列各种变体的写入方法:WriteWriteLineWriteIfWriteLineIf

BooleanSwitchTraceSwitch 类提供动态控制跟踪输出的方法。不用重新编译应用程序即可修改这些开关的值。有关使用配置文件以设置开关的信息,请参见 Switch 类和 如何:配置跟踪开关 主题。

可通过将 TraceListener 实例添加到 Listeners 集合或将实例从该集合移除来自定义跟踪输出的目标。默认情况下,使用 DefaultTraceListener 类发出跟踪输出。

Trace 类提供获取或设置 IndentIndentSize 的级别的属性,以及是否在每次写入后 AutoFlush

若要为 Trace 设置 AutoFlushIndentSize,可以编辑与应用程序的名称相对应的配置文件。应像下面的示例这样对配置文件进行格式化:

<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="3" />
  </system.diagnostics>
</configuration>

Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows CE 平台说明: .NET Compact Framework 不支持使用配置文件的跟踪功能。

主题 位置
如何:使用跟踪和调试进行条件编译 .NET Framework:调试
如何:在应用程序中跟踪代码 .NET Framework:调试
如何:向应用程序代码添加跟踪语句 .NET Framework:调试
如何:创建和初始化跟踪侦听器 .NET Framework:调试
如何:配置跟踪开关 .NET Framework:调试
如何:创建和初始化跟踪侦听器 .NET Framework:调试
如何:使用跟踪和调试进行条件编译 .NET Framework:调试
如何:配置跟踪开关 .NET Framework:调试
如何:在应用程序中跟踪代码 .NET Framework:调试
如何:向应用程序代码添加跟踪语句 .NET Framework:调试
演练:将 ASP.NET 跟踪与 System.Diagnostics 跟踪集成 在 Visual Studio 中生成 ASP .NET Web 应用程序
演练:将 ASP.NET 跟踪与 System.Diagnostics 跟踪集成 在 Visual Studio 中生成 ASP .NET Web 应用程序
演练:将 ASP.NET 跟踪与 System.Diagnostics 跟踪集成 生成 ASP .NET Web 应用程序

示例

下面的示例使用 Trace 指示程序执行的开始和结束。该示例还使用 IndentUnindent 区分跟踪输出。

Shared Sub Main()
    Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
    Trace.AutoFlush = True
    Trace.Indent()
    Trace.WriteLine("Entering Main")
    Console.WriteLine("Hello World.")
    Trace.WriteLine("Exiting Main")
    Trace.Unindent()
End Sub 'Main
static int Main(string[] args)
{
   Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
   Trace.AutoFlush = true;
   Trace.Indent();
   Trace.WriteLine("Entering Main");
   Console.WriteLine("Hello World.");
   Trace.WriteLine("Exiting Main"); 
   Trace.Unindent();
   return 0;
}
int main()
{
   Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Trace::AutoFlush = true;
   Trace::Indent();
   Trace::WriteLine( "Entering Main" );
   Console::WriteLine( "Hello World." );
   Trace::WriteLine( "Exiting Main" );
   Trace::Unindent();
   return 0;
}

.NET Framework 安全性

继承层次结构

System.Object
  System.Diagnostics.Trace

线程安全

此类型是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

Trace 成员
System.Diagnostics 命名空间
Debug 类
Switch 类
BooleanSwitch 类
TraceSwitch
TraceListener
DefaultTraceListener 类
EventLogTraceListener 类
TraceListenerCollection
ConditionalAttribute 类