通过阅读本文,你可以了解外部日志回调和内置日志回调函数的详情。

外部日志回调

外部日志回调函数声明如下所示:

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

参数说明

参数 类型 描述
s void * 通过preconfig("LogCbParam")设置值,Native RTS SDK将原值回传给output_log
level int 日志等级,取值:
  • 0:Error。
  • 1:Warning。
  • 2:Info。
  • 3:Debug。
fmt const char * 格式化字符串,和printf中的format参数一致。
args va_list 可变参数列表。

示例说明

外部日志回调函数通过preconfig设置给Native RTS SDK,示例如下所示:

//提供一个回调函数
static int output_log(struct AVFormatContext *s, int level, const char *fmt, va_list args)
{
    //TODO: 处理log
    return 0;
}

//注册这个回调函数给RTS SDK
__rts_funcs->preconfig("LogCallback", addr_to_string(output_log, buf));
__rts_funcs->preconfig("LogCbParam", addr_to_string(s, buf));         

关于外部日志回调函数更多信息,请参见Native RTS SDK中的rtsdec.c文件。

内置日志回调

内置日志回调功能通过preconfig接口实现,函数声明如下所示:

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

参数说明

参数 类型 描述
key const char * 参数名称,大小写敏感,详情请参见下表。
val const char * 参数值。
参数 解释
LogToConsole 是否允许输出到控制台。
LogToFile 是否允许输出到文件。
LogToServer 是否允许输出到服务器。
LogLevel 日志过滤条件。符合日志过滤条件或者严重等级更高的日志才会输出。日志严重等级如下所示:
  • 0:ERROR。
  • 1:WARN。
  • 2:INFO。
  • 3:DEBUG。

示例说明

__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