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> |
上記の設定ファイルでは、4 種類のトレースリスナが参照されています。
ConsoleTraceListener トレース出力またはデバッグ出力は、標準出力か標準エラーストリームのどちらかに送られます。Microsoft Visual Studio を使用する場合、出力は [出力] ウィンドウに表示されます。
DefaultTraceListener このリスナは、名前 "Default" を使用して、自動的に Debug.Listeners および Trace.Listeners コレクションに追加されます。トレース出力またはデバッグ出力は、標準出力か標準エラーストリームのどちらかに送られます。Microsoft Visual Studio を使用する場合、出力は [出力] ウィンドウに表示されます。ConsoleTraceListener により生成される出力の重複を避けるため、このリスナは削除されます。
EventLogTraceListener トレース出力またはデバッグ出力は、initializeData オプションで識別される EventLog に送られます。この例では、イベントログの名前は MyEventLog です。システムイベントログに書き込むには管理者権限が必要であり、この方法でアプリケーションをデバッグすることはおすすめしません。
TextWriterTraceListener トレース出力またはデバッグ出力は TextWriter に送られ、initializeData オプションで識別されるファイルにストリームが書き込まれます。
上記のトレースリスナへのトレース出力を無効にするには、<listeners> にある対応する add エントリを削除します。
トレースの設定情報は、App.config という名前で、アプリケーションのプロジェクト フォルダに置かれます。このファイルが存在しない場合は、Visual Studio を使用して作成し、プロジェクトに追加できます。それには、[追加] » [新しい項目] を選択し、[アプリケーション構成ファイル] を選択します。
どのリスナでも traceOutputOptions を指定できます。次のオプションがあります。
Callstack コールスタックを書き込みます。コールスタックは、Environment.StackTrace プロパティの戻り値で表されます。
DateTime 日付と時刻を書き込みます。
LogicalOperationStack 論理演算スタックを書き込みます。論理演算スタックは、CorrelationManager.LogicalOperationStack プロパティの戻り値で表されます。
None 要素を書き込みません。
ProcessId プロセス ID を書き込みます。プロセス ID は、Process.Id プロパティの戻り値で表されます。
ThreadId スレッド ID を書き込みます。スレッド ID は、現在のスレッドの 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] |
nativeError=error_number は、SAException オブジェクトが存在する場合に限り表示されます。
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/ja-jp/library/ms971550.aspxの「Tracing Data Access」を参照してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |