Я запускаю пример программы 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 поместит все записи в этот файл, но для отдельного журнала для отдельных потоков вам нужно будет написать свой собственный обработчик журнала. Взгляните на gstinfo.c и gst_debug_add_log_function.
Что касается вашего Q2, опять же, вам нужно будет написать свой собственный обработчик журнала, если вы хотите, чтобы он начинался с GST, поскольку эти другие поля (метка времени, идентификатор процесса, поток и т. Д.) Включены в обработчик журнала по умолчанию. (снова см. gstinfo.c, gst_debug_log_default)
Других решений пока нет …