TraceHandler インターフェース (PRIM_APP.ITraceHandler)

ユーザー定義のトレース用のトレースハンドラーインターフェース

祖先 - なし

詳細

iTraceHandler インターフェイスは、オーバーヘッドの低いトレースメカニズムで、アプリケーションに組み込まれて、置き換えられるランタイムオブジェクトを用意することなく開発者にフィードバックを提供できます。 

トレースステートメントは、 TraceMessageTextTraceMessageData メソッドを使用してRDMLXに書き込むことができ、そのまま残すことができます。実行時に Trace Handler が実装されていない限り、実質的に無視されます。

以下のサンプルは簡単な Web トレースハンドラです。 

この再利用可能パーツがランタイムに作成され、クエリ文字列にパラメータとして Trace = True が追加されると、トレース出力がブラウザコンソールに送信されます。 

     Function Options(*DIRECT)
Begin_Com Role(*EXTENDS #PRIM_OBJT *implements #Prim_App.iTraceHandler)
        * Include a Define_Com for this reusable part in your web page
* It will install itself as the TraceHandler if "trace=true" is included as a parameter on the URL
* You can then embed #sys_appln.TraceMessageText( aaa bbb ccc ddd ) whereever you want to send trace data to the console.
* Each parameter equates to a single trace statement

Evtroutine Handling(#Com_Owner.CreateInstance)

For Each(#Parameter) In(#sys_web.UrlParameters)

Continue If(#Parameter.Name.UpperCase <> Trace)
Continue If(#Parameter.Value.uppercase <> True)

#Sys_appln.TraceHandler <= #Com_owner /* Set this to be the trace handler for the application */

Leave

Endfor

Endroutine

Mthroutine Name(TraceMessage) Help('Request to trace data received') Options(*redefine)

#Com_owner.WriteToConsole( #ComponentName #Description #LineNumber #MessageText )

Endroutine

Mthroutine Name(WriteToConsole) Help('Write an entry to the browser console') Access(*private)
Define_Map For(*Input) Class(#prim_alph) Name(#ComponentName)
Define_Map For(*Input) Class(#prim_alph) Name(#Description)
Define_Map For(*Input) Class(#prim_nmbr) Name(#LineNumber)
Define_Map For(*Input) Class(#prim_alph) Name(#Message)

Define_Com Class(#prim_Dat) Name(#Now)

#Message := #Now.now.AsLocalizedDateTime.AsString.Righttrim( "0" ) + " " + #ComponentName + " " + #Description + " " + #LineNumber.asstring + " " + #Message

#sys_web.Console.Log( #Message )

Endroutine

Mthroutine Name(TracingState) Options(*redefine)

#MessageTracingActive := True

Endroutine

End_Com

メソッド

名前

記述

Initialize

ユーザートレースが開始されると実行されます。

Terminate

ユーザートレースが終了すると実行されます。

TraceMessage

トレースメッセージの発行時に常に実行されます。

ComponentName, Description, LineNumber, MessageText

TracingState

トレースはアクティブか

MessageTracingActive


参照

すべてのコンポーネント クラス
テクニカルリファレンス

  • No labels