2

我正在运行一个 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 开始?

参考文献
发现了一个类似的问题

4

2 回答 2

6

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

至于您的 Q2,如果您希望它从 GST 开始,您将需要编写自己的日志处理程序,因为这些其他字段(时间戳、进程 ID、线程等)包含在默认日志处理程序中。(再次参见 gstinfo.c,gst_debug_log_default)

于 2013-08-26T06:24:08.823 回答
2

现在已经有一段时间了,但是对于其他想知道您可以设置 GST_DEBUG_NO_COLOR=1 来删除这些特殊字符的人来说。

于 2019-06-11T20:28:42.883 回答