# ctaLogTrace

Logs a trace record.

#### Prototype

DWORD ctaLogTrace ( CTAHD ctahd, CTA_TRACE_SEVERITY traceseverity, unsigned tracetag, void *tracevalue, unsigned tracesize)

Argument | Description
ctahd | Handle returned by ctaCreateContext. Use CTA_NULL_CTAHD if the trace message is not associated with a context.
traceseverity | Type of trace message. Valid values are: CTA_TRACE_SEVERITY_INFO CTA_TRACE_SEVERITY_WARNING CTA_TRACE_SEVERITY_ERROR
tracetag | Type of parameter passed by reference in tracevalue. Valid values are: CTA_TRACETAG_API_EVENT CTA_TRACETAG_DWORD CTA_TRACETAG_INT32 CTA_TRACETAG_STRING CTA_TRACETAG_ERROR
tracevalue | Pointer to a location containing the byte values to be written to the log file.
tracesize | Size of tracevalue in bytes.

#### Return values

Return value | Description
SUCCESS |
CTAERR_INVALID_CTAHD | An invalid context handle was passed as an argument to a function, or the context was destroyed by another thread.
CTAERR_OUT_OF_MEMORY | Tracing is enabled and there is not enough memory for the trace messages.
CTAERR_NOT_INITIALIZED | Natural Access is not initialized. Call ctaInitialize first.
CTAERR_SVR_COMM | Server communication error.

#### Details

ctaLogTrace logs errors, warnings, or informational messages to the Natural Access trace buffer maintained by the Natural Access Server (ctdaemon). Enable tracing by setting traceflags to CTA_TRACE_ENABLE in ctaInitialize.

ctdaemon allows viewing trace messages and logging to a file. ctdaemon translates trace records received from applications into a readable format based on the tracetag passed to this function.

Refer to Error tracing for more information.

#### See also

ctaSetTraceLevel

#### Example

void DemoLogString(CTAHD ctahd, char *string)
{
ctaLogTrace(ctahd,
CTA_TRACE_SEVERITY_INFO,
CTA_TRACETAG_STRING,
string, strlen(string) + 1);
}
void DemoLogAppEvent(CTA_EVENT *event)
{
ctaLogTrace(event->ctahd,
CTA_TRACE_SEVERITY_INFO,
CTA_TRACETAG_API_EVENT,
event, sizeof(*event));
}