GST_DEBUG:如何将日志保存在应用程序内部线程的单独文件中

我正在运行gstreamer的示例程序,它是从C ++应用程序作为线程调用的。 已设置GST_DEBUG=*:5级别以捕获所有可能的方案。

该应用程序还在stdout上打印了大量的日志,而gstreamer线程也是如此(级别5增加了痛苦)。

问题 – 有没有办法在给定调试级别的文件中分离出gstreamer线程的日志打印?

补充问题 – 根据答案下面的答案设置GST_DEBUG_FILE,但文件从某些字符开始而不是从GST_DEBUG开始

 0:00:00.000036045 ^[[335m21088^[[00m 0x8405800 ^[[37mLOG ^[[00m ^[[00;01;33m GST_DEBUG gstinfo.c:1329:for_each_threshold_by_entry:^[[00m category default matches pattern 0x8405570 - gets set to level 5 0:00:00.000109741 ^[[335m21088^[[00m 0x8405800 ^[[32;01mINFO ^[[00m ^[[00;01;31m GST_INIT gst.c:613:init_pre:^[[00m Initializing GStreamer Core Library version 0.10.36 0:00:00.000123496 ^[[335m21088^[[00m 0x8405800 ^[[32;01mINFO ^[[00m ^[[00;01;31m GST_INIT gst.c:614:init_pre:^[[00m Using library installed in /usr/lib/i386-linux-gnu 

Q2如何删除这些字符,如“^ [[”并从GST开始?

参考
发现了类似的问题

GST_DEBUG_FILE = / tmp / gst.log会将所有日志记录放入该文件中,但对于单独的线程,您需要编写自己的loghandler。 看看gstinfo.c和gst_debug_add_log_function。

至于你的Q2,如果你想让它从GST开始,你将需要编写自己的loghandler,因为这些其他字段(timestamp,process-id,thread等)都包含在默认的loghandler中。 (再次参见gstinfo.c,gst_debug_log_default)