cciUserDebugTrace を使用して、 ユーザー・トレースがデバッグ・レベルでアクティブのときに、メッセージ・カタログからのメッセージ (挿入あり) をユーザー・トレースに書き込みます。
ユーザー・トレースがデバッグ・レベルでアクティブではない場合、 サービス・トレースが何らかのレベルでアクティブなら、エントリーはサービス・トレースに書き込まれます。
void cciUserDebugTrace( int* returnCode, CciObject* object, const CciChar* messageSource, int messageNumber, const char* traceText, ... );
現行のブローカー・メッセージ・カタログを使用するには、
すべてのオペレーティング・システムで BIPv600 を指定します。
あるいは、独自のメッセージ・カタログを作成することもできます。
トレースをフォーマット設定する場合は、このカタログの NLS バージョンからのメッセージが書き込まれます。
使用されるロケールは、トレースをフォーマット設定する環境のロケールです。 1 つのプラットフォームでブローカーを実行し、そのプラットフォームでログを読み、 それから別のプラットフォームでそのログをフォーマット設定することができます。 例えば、ブローカーを Linux、UNIX、または z/OS で実行しているものの、 そこには使用可能な .cat ファイルがない場合、 ユーザーはログを読んでからそれを Windows に転送し、 .properties ファイルを使ってログをフォーマット設定できるかもしれません。
このパラメーターが NULL の場合は、空ストリングを指定したときと同じ結果になります。すなわち、他のすべての情報がログに書き込まれ、カタログ・フィールドには空ストリング値が入ります。 そのため、ログ・フォーマッターはメッセージ・ソースを見つけることができずに、このエントリーのフォーマット設定に失敗します。
const CciChar* myMessageSource=CciString("SwitchMSG",BIP_DEF_COMP_CCSID); CciNode* thisNode = ((NODE_CONTEXT_ST*)context)->nodeObject; const char* mbElementName = mbString((CciChar*)&elementName,BIP_DEF_COMP_CCSID); const char* mbElementValue = mbString((CciChar*)&elementValue,BIP_DEF_COMP_CCSID); const char* traceTextFormat = "Switch Element: name=%s, value=%s"; char* traceText = (char*)malloc(strlen(traceTextFormat) + strlen(mbElementName) + strlen(mbElementValue)); sprintf(traceText,traceTextFormat,mbElementName,mbElementValue); cciUserDebugTrace(&rc, (CciObject*)thisNode, myMessageSource, 2, traceText, mbElementName, mbElementValue, (char*)0); free((void*)mbElementName); free((void*)mbElementValue); free((void*)traceText);