如何将 gstreamer 调试信息重定向到日志库

问题描述 投票:0回答:1

我的 C++ 应用程序中运行着 gstreamer 管道。为了检查与这些问题相关的问题,我通过设置变量 GST_DEBUG 来启用打印调试信息,如本页所述:https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html?gi-language= c。 但是,这会直接打印在 cout 上,并且我在应用程序中使用日志库 (log4cplus)。由于 gstreamer 调试信息的分类与 log4cplus 中的分类非常相似(错误、警告、调试等),我预计可以在记录器中重定向这些消息,但我找不到任何有关如何执行此操作的信息.

我之前使用过Qt框架,它有一个函数“qInstallMessageHandler”,可以将qt日志重定向到自定义记录器。 gstreamer有类似的东西吗?

c++ logging gstreamer log4cplus
1个回答
0
投票

我对此没有经验,但看起来您可以注册一个C函数,Gstreamer框架在记录时将调用该函数。

static void gst_log_handler(GstDebugCategory *category,
    GstDebugLevel level, const gchar *file, const gchar *function,
    gint line, GObject *object, GstDebugMessage *message, gpointer user_data) {
    // Convert into log4cplus::spi::InternalLoggingEvent and log it.
}

// Somewhere else then register it:
gst_debug_add_log_function(debug_category, gst_log_handler, nullptr);
© www.soinside.com 2019 - 2024. All rights reserved.