cciUserDebugTrace

此函数与 cciUserTrace 相差无几,唯一的区别是,只有当用户跟踪在调试级别处于活动状态时,项才会写入到用户跟踪。
注: 当服务跟踪和用户跟踪在任何级别处于活动状态时,服务跟踪中也会有项写入。

语法

void cciUserDebugTrace(
    int*                returnCode,
  CciObject*        object,
  const CciChar*    messageSource,
    int                 messageNumber,
  const char*    traceText,
  ...
);

参数

returnCode
接收来自函数(输出)的返回码。NULL 指针输入表示用户定义的节点不要处理错误。在执行此调用期间抛出的任何异常都重新抛出到流中的下一个上 行节点。如果输入不是 NULL,则输出表示调用的成功状态。如果执行期间发生异常,则 *returnCode 设置会为输出上的 CCI_EXCEPTION。调用 CciGetLastExceptionData 获取该异常的详请。
object
要与跟踪条目关联的对象的地址(输入)。该对象可以是 CciNode* 或 a CciParser*。如果是 CciNode*,则该节点的名称会写到跟踪。如果是 CciParser*,则创建解析器的节点的名称会写到跟踪。该对象也用于确定该条目是否应该写到跟踪。仅当跟踪对该节点活动时才会写该条目。节点当前从消息流中继承它们的跟踪设置。
如果该参数为 NULL,则会返回执行组的跟踪级别。
messageSource
标识 Windows 消息源或 Linux 和 UNIX 消息编目的字符串(输入)。格式化跟踪时,会写一个该目录 NLS 版本的消息。使用的语言环境是格式化跟踪的环境。可以在一种类型的平台上运行代理,然后在该平台上阅读日志,然后在不同的平台上格式化日志。例如,如果代理在 Linux 或 UNIX 上运行,但是没有可用 no .cat 文件,用户可以阅读日志,然后将日志传送到 Windows,在 Windows 中可以使用 .properties 文件格式化日志。
如果参数为 NULL,则结果与指定空字符串相同。即,所有其他信息都将写入日志,并且目录字段将有空字符串值。如果有空字符串值,则日志格式化程序将无法找到消息来源。因此,日志格式化程序将无法格式化该条目。
messageNumber
在指定 messageSource 中标识消息的数目(输入)。 如果 messageSource 未包含对应于该 messageNumber 的消息,则日志格式化程序将无法格式化该条目。
traceText
以 NULL 结尾的字符串(输入)。该字符串将写到服务跟踪并且提供简单的方法通过源代码将跟踪项与路径关联起来。例如,可能有几个通过代码的路径,这些路径会导致产生相同的消息(messageSourcemessageNumber),这些消息会写到跟踪。traceText 可以用来区别这些不同的路径。即 traceText 字符串将为源代码中的静态文字串,因此相同的字符串将同时在源代码文件和格式化的跟踪文件中。
...
包含与消息在一起的任何消息插入内容的 C 变量参数列表(输入)。这些插入内容作为字符串处理,并且变量参数假设为类型指针到字符型。此列表中最后的参数必须(char*)0
  • 对于在分布式平台上运行的用户定义的扩展,自变量 char* 必须在 ISO-8859-1(ibm-918)代码页中。
  • 对于在 Z/OS 平台上运行的用户定义的扩展,自变量 char* 必须在 EBCIDIC(1047)代码页中。
这包括在 traceText 和插入内容(...)的参数列表中的所有变量。.

返回值

无。 如果发生错误,则 returnCode 参数表明错误原因。

示例

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);
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as24510_