MySQL 连接器/NET 开发人员指南  / 第 5 章连接器/NET 编程  /  5.12 使用连接器/NET 跟踪源对象

5.12 使用连接器/NET 跟踪源对象

.NET 2.0 跟踪体系结构由四个主要部分组成:

  • - 这是跟踪信息的发起者。源用于发送跟踪消息。Connector/NET 提供的源名称是 mysql.

  • 开关- 这定义了要发出的跟踪信息的级别。通常,这在 app.config文件中指定,因此无需重新编译应用程序即可更改跟踪级别。

  • 侦听器- 跟踪侦听器定义跟踪信息将写入的位置。支持的侦听器包括,例如,Visual Studio 输出窗口、Windows 事件日志和控制台。

  • 过滤器- 过滤器可以附加到侦听器。过滤器确定将写入的跟踪信息的级别。虽然开关定义了将写入所有侦听器的信息级别,但可以在每个侦听器的基础上应用过滤器,从而对跟踪信息进行更细粒度的控制。

要使用跟踪 , MySql.Data.MySqlClient.MySqlTrace 可以用作 Connector/NET 的 TraceSource,并且连接字符串必须包含“Logging=True”

要启用跟踪消息,请配置跟踪开关。跟踪开关与跟踪级别枚举相关联,它们是 OffErrorWarningInfoVerbose

MySqlTrace.Switch.Level = SourceLevels.Verbose;

这会将跟踪级别设置为 Verbose,这意味着将写入所有跟踪消息。

无需重新编译代码就可以更改跟踪级别,这很方便。这是通过在应用程序配置文件中指定跟踪级别来实现的, app.config. 然后您只需在配置文件中指定所需的跟踪级别并重新启动应用程序。跟踪源 system.diagnostics在文件的部分中配置。以下 XML 片段说明了这一点:

<configuration>
  ...
  <system.diagnostics>
    <sources>
      <source name="mysql" switchName="MySwitch"
              switchType="System.Diagnostics.SourceSwitch" />
      ...
    </sources>
    <switches>
      <add name="MySwitch" value="Verbose"/>
      ...
    </switches>
  </system.diagnostics>
  ...
</configuration>

默认情况下,跟踪信息写入 Microsoft Visual Studio 的输出窗口。有多种侦听器可以附加到跟踪源,因此可以将跟踪消息写出到不同的目的地。您还可以创建自定义侦听器,以允许将跟踪消息写入其他目的地,如移动设备和 Web 服务。侦听器的一个常用示例是ConsoleTraceListener,它将跟踪消息写入控制台。

要在运行时添加侦听器,请使用如下代码:

ts.Listeners.Add(new ConsoleTraceListener());

然后调用跟踪源对象的方法生成跟踪信息。例如, 可以使用 TraceInformation()TraceEvent()或方法。TraceData()