最近在项目中,想打开GST_LOG_OBJECT所打印的日志,查看代码发现这个宏用的等级是GST_LEVEL_LOG,比debug还低,尝试以下方式
gst_debug_set_default_threshold(6);
发现并没有打开,经过一番鼓捣,增加了个
g_setenv("G_MESSAGES_DEBUG","all",TRUE);
发现可以了
参考armv7/share/gst-android/ndk-build/gstreamer_android-1.0.c.in,这是编译android gst生成的文件,里面有日志控制的函数
static void
glib_log_handler (const gchar * log_domain, GLogLevelFlags log_level,
const gchar * message, gpointer user_data)
{
gchar *string;
GString *gstring;
const gchar *domains;
gint android_log_level;
gchar *tag;
if ((log_level & DEFAULT_LEVELS) || (log_level >> G_LOG_LEVEL_USER_SHIFT))
goto emit;
domains = g_getenv ("G_MESSAGES_DEBUG");
if (((log_level & INFO_LEVELS) == 0) ||
domains == NULL ||
(strcmp (domains, "all") != 0 && (!log_domain
|| !strstr (domains, log_domain))))
return;
。。。
其中可以看到依赖于G_MESSAGE_DEBUG的环境变量