.NET 跟踪体系结构由四个主要部分组成
源 - 这是跟踪信息的来源。源用于发送跟踪消息。Connector/NET 提供的源名称是
mysql
。开关 - 这定义了要发出的跟踪信息的级别。通常,这是在
app.config
文件中指定的,因此无需重新编译应用程序即可更改跟踪级别。侦听器 - 跟踪侦听器定义将跟踪信息写入何处。支持的侦听器包括(例如)Visual Studio 输出窗口、Windows 事件日志和控制台。
筛选器 - 筛选器可以附加到侦听器。筛选器确定将写入的跟踪信息的级别。虽然开关定义了将写入所有侦听器的信息的级别,但可以在每个侦听器的基础上应用筛选器,从而对跟踪信息进行更精细的控制。
要使用跟踪,MySql.Data.MySqlClient.MySqlTrace 可用作 Connector/NET 的 TraceSource,并且连接字符串必须包含 "Logging=True"。
要启用跟踪消息,请配置跟踪开关。跟踪开关具有与其关联的跟踪级别枚举,它们是 关闭、错误、警告、信息 和 详细。
MySqlTrace.Switch.Level = SourceLevels.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()
方法。