use*_*142 1 c c++ logging multithreading gstreamer
我正在运行一个 gstreamer 示例程序,它作为线程从 C++ 应用程序中调用。已设置GST_DEBUG=*:5级别以捕获所有可能的场景。
该应用程序还在标准输出上打印大量日志,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
Run Code Online (Sandbox Code Playgroud)
Q2 如何删除像 "^[[" 这样的字符并从 GST 开始?
参考文献
发现了一个类似的问题
GST_DEBUG_FILE=/tmp/gst.log 会将所有日志记录到该文件中,但是对于单独线程的单独日志,您需要编写自己的日志处理程序。查看 gstinfo.c 和 gst_debug_add_log_function。
至于您的 Q2,如果您希望它从 GST 开始,您将需要编写自己的日志处理程序,因为这些其他字段(时间戳、进程 ID、线程等)包含在默认日志处理程序中。(再次参见 gstinfo.c、gst_debug_log_default)