通过阅读本文,你可以了解外部日志回调和内置日志回调函数的详情。
外部日志回调
外部日志回调函数声明如下所示:
int (* output_log)(
void *s,
int level,
const char *fmt,
va_list args
); 参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| s | void * | 通过preconfig("LogCbParam")设置值,Native RTS SDK将原值回传给output_log。
|
| level | int | 日志等级,取值:
|
| 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 | 日志过滤条件。符合日志过滤条件或者严重等级更高的日志才会输出。日志严重等级如下所示:
|
示例说明
__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