通过阅读本文,你可以了解外部日志回调和内置日志回调函数的详情。
外部日志回调
外部日志回调函数声明如下所示:
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