SQL Anywhere .NET 数据提供程序支持使用 .NET 跟踪功能进行跟踪。Windows Mobile 上不支持跟踪。
缺省情况下,跟踪功能被禁用。要启用跟踪功能,请在应用程序的配置文件中指定跟踪源。
以下是配置文件的一个示例:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <source name="iAnywhere.Data.SQLAnywhere" switchName="SASourceSwitch" switchType="System.Diagnostics.SourceSwitch"> <listeners> <add name="ConsoleListener" type="System.Diagnostics.ConsoleTraceListener"/> <add name="EventListener" type="System.Diagnostics.EventLogTraceListener" initializeData="MyEventLog"/> <add name="TraceLogListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="myTrace.log" traceOutputOptions="ProcessId, ThreadId, Timestamp"/> <remove name="Default"/> </listeners> </source> </sources> <switches> <add name="SASourceSwitch" value="All"/> <add name="SATraceAllSwitch" value="1" /> <add name="SATraceExceptionSwitch" value="1" /> <add name="SATraceFunctionSwitch" value="1" /> <add name="SATracePoolingSwitch" value="1" /> <add name="SATracePropertySwitch" value="1" /> </switches> </system.diagnostics> </configuration> |
配置文件中引用了上述四种类型的跟踪监听器。
ConsoleTraceListener 跟踪或调试输出将被定向到标准输出或标准错误流。使用 Microsoft Visual Studio 时,输出将显示在 [Output] 窗口中。
DefaultTraceListener 此监听器将以名称 "Default" 自动添加到 Debug.Listeners 和 Trace.Listeners 集合中。跟踪或调试输出将被定向到标准输出或标准错误流。使用 Microsoft Visual Studio 时,输出将显示在 [Output] 窗口中。要避免 ConsoleTraceListener 产生重复输出,可删除此监听器。
EventLogTraceListener 跟踪或调试输出将被定向到在 [initializeData] 选项中标识的 [EventLog]。在本示例中,事件日志名为 MyEventLog。向系统事件日志写入流需要管理员权限,不推荐使用此方法调试应用程序。
TextWriterTraceListener 跟踪或调试输出将被定向到 TextWriter,它可将流写入到在 [initializeData] 选项中标识的文件。
要禁用跟踪上述任何跟踪监听器,请在 [<listeners>] 下删除相应的 [add] 条目。
跟踪配置信息位于应用程序的项目文件夹下的 App.config 文件中。如果不存在该文件,可使用 Visual Studio 进行创建并添加到项目,方法是选择 [Add] » [New Item],然后选择 [Application Configuration File]。
可为任何监听器指定的 [traceOutputOptions] 如下:
Callstack 编写由 Environment.StackTrace 属性的返回值表示的调用堆栈。
DateTime 编写日期和时间。
LogicalOperationStack 编写由 CorrelationManager.LogicalOperationStack 属性的返回值表示的逻辑操作堆栈。
None 不编写任何元素。
ProcessId 编写由 Process.Id 属性的返回值表示的过程标识。
ThreadId 编写由当前线程的 Thread.ManagedThreadId 属性的返回值表示的线程标识。
Timestamp 编写由 System.Diagnostics.Stopwatch.GetTimeStamp 方法的返回值表示的时间戳。
之前显示的示例配置文件仅用于为 TextWriterTraceListener 指定跟踪输出选项。
可通过设置特定的跟踪选项来限制跟踪的内容。缺省情况下,所有值为数字的跟踪选项设置均为 0。可设置的跟踪选项包括:
SASourceSwitch SASourceSwitch 可采用以下任一值。如果设置为 Off,则不进行跟踪。
Off 不允许任何事件通过。
Critical 只允许重要事件通过。
Error 允许重要事件和错误事件通过。
Warning 允许重要事件、错误事件和警告事件通过。
Information 允许重要事件、错误事件、警告事件和信息事件通过。
Verbose 允许重要事件、错误事件、警告事件、信息事件和详细事件通过。
ActivityTracing 允许停止事件、开始事件、暂停事件、传输事件和恢复事件通过。
All 允许所有事件通过。
以下为示例设置。
<add name="SASourceSwitch" value="Error"/> |
SATraceAllSwitch 将启用所有跟踪选项。您无需再设置任何其它选项,因为已选择了所有的选项。如果选择此选项,则无法禁用单独的选项。例如,以下语句将不会禁用异常跟踪。
<add name="SATraceAllSwitch" value="1" /> <add name="SATraceExceptionSwitch" value="0" /> |
SATraceExceptionSwitch 记录所有异常。跟踪消息具有以下形式。
<Type|ERR> message='message_text'[ nativeError=error_number] |
仅当具有 SAException 对象时,才会显示 nativeError=error_number 文本。
SATraceFunctionSwitch 记录所有进入/退出函数作用域的操作。跟踪消息具有以下形式之一。
enter_nnn <sa.class_name.method_name|API> [object_id#][parameter_names] leave_nnn |
nnn 是一个整数,它表示范围嵌套级别 1、2、3、……可选的 parameter_names 是由空格分隔的参数名列表。
SATracePoolingSwitch 记录所有连接池。跟踪消息具有以下形式之一。
<sa.ConnectionPool.AllocateConnection|CPOOL> connectionString='connection_text' <sa.ConnectionPool.RemoveConnection|CPOOL> connectionString='connection_text' <sa.ConnectionPool.ReturnConnection|CPOOL> connectionString='connection_text' <sa.ConnectionPool.ReuseConnection|CPOOL> connectionString='connection_text' |
SATracePropertySwitch 记录所有属性设置和检索。跟踪消息具有以下形式之一。
<sa.class_name.get_property_name|API> object_id# <sa.class_name.set_property_name|API> object_id# |
有关详细信息,请参见 http://msdn.microsoft.com/zh-cn/library/ms971550.aspx 的 "Tracing Data Access"。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |