Как отфильтровать логи через processImagePath?

1

Учитывая следующие записи журнала (которые я запускаю в другом терминале, чтобы сравнить мой фильтр):

$ log stream --level debug | grep -w Google
Activity    0x80000000003a7a20   75676  Google Chrome Helper: (CoreFoundation) Loading Preferences From System CFPrefsD For Search List
Debug       0x0                  75676  Google Chrome Helper: (CoreFoundation) [com.apple.CFBundle.resources] Resource lookup at <private>
Debug       0x0                  11599  Google Chrome: (Security) [com.apple.securityd.handleobj] create 0x7fd130d2677a for 0x7fd130d262e0

Примечание: удаленный столбец datetime для приведенного выше примера для лучшей наглядности.

Теперь я хотел бы отфильтровать журнал на основе Google ключевое слово для отображения записей журнала Google Chrome Helper , Гугл Хром а также хром процессы.

Однако следующая команда не отображает эти записи:

$ log stream --level debug --predicate 'processImagePath contains Google'
Filtering the log data using "processImagePath CONTAINS Google"
Timestamp                       Thread     Type        Activity             PID    

Я следую за man log Логика страницы документации в соответствии с этим примером:

$ log show --predicate 'processImagePath endswith "hidd" and senderImagePath contains[cd] "IOKit"' --info

Timestamp                       Thread     Type        Activity     PID
2016-06-10 13:54:34.593220-0700 0x250      Info        0x0          113    hidd: (IOKit) [com.apple.iohid.default] Loaded 6 HID plugins

Что я делаю не так? Зачем processImagePath contains Google фильтр не работает?

kenorb
источник

Ответы:

1

Согласно яблоко ответ поддержки, строковые константы должны быть заключены в кавычки в выражении предиката.

Таким образом, команда должна иметь такой синтаксис:

log stream --level debug --predicate 'processImagePath contains "Google"'

Увидеть: Создание предиката с использованием строки формата в Руководство по программированию Apple ,

kenorb
источник