This topic describes the syntax of external log callback and built-in log callback functions.

External log callback

The following code shows the syntax of the external log callback function:

int (* output_log)(
    void *s,
    int level,
    const char *fmt,
    va_list args
);       

Parameters

Parameter Type Description
s void * The value of this parameter is determined by the LogCbParam parameter of the preconfig method. The value is passed to the output_log method.
level int The level of the logs to be filtered. Valid values:
  • 0: the ERROR level.
  • 1: the WARNING level.
  • 2: the INFO level.
  • 3: the DEBUG level.
fmt const char * The formatted string. The value of this parameter is the same as that of the format parameter in the printf method.
args va_list The list of variable parameters.

Example

In this example, the external log callback function is set for Native RTS SDK by using the preconfig method, as shown in the following code:

// Invoke a callback function.
static int output_log(struct AVFormatContext *s, int level, const char *fmt, va_list args)
{
    // TODO: Process logs.
    return 0;
}

// Set the callback function for Native RTS SDK.
__rts_funcs->preconfig("LogCallback", addr_to_string(output_log, buf));
__rts_funcs->preconfig("LogCbParam", addr_to_string(s, buf));         

For more information about the external log callback function, see the rtsdec.c file of Native RTS SDK.

Built-in log callback

The built-in log callback function is implemented by using the preconfig method. The following code shows the syntax of the built-in log callback function:

int (* preconfig)(
    const char *key,
    const char *val
);

Parameters

Parameter Type Description
key const char * The name of the parameter. The name is case-sensitive. For more information, see the following table.
val const char * The value of parameter.
Parameter Description
LogToConsole Specifies whether to export built-in logs to the console.
LogToFile Specifies whether to export built-in logs to a file.
LogToServer Specifies whether to push built-in logs to a server.
LogLevel The level of the logs to be filtered. Only logs of the required or higher levels are exported or pushed. Valid values:
  • 0: the ERROR level.
  • 1: the WARN level.
  • 2: the INFO level.
  • 3: the DEBUG level.

Example

__rts_funcs->preconfig("LogToConsole", "true"); //output to console
__rts_funcs->preconfig("LogToFile",    "true"); //output to file
__rts_funcs->preconfig("LogToServer",  "true"); //output to server
__rts_funcs->preconfig("LogLevel",     "2");    //LOG_INFO