Новое средство просмотра Android логов в FGX Native
Здравствуйте.
В этой статье мы поговорим о новинке, которая появится в релизе 1.11.6.0, а именно о встроенном средстве просмотра логов устройств работающих под управлением операционной системы Android.
Общие данные о том, что такое логи, их ценность при отладке и тд вы можете прочитать в статье касающейся логирования в контексте iOS
Общие сведения.
Для просмотра логов под Android используется утилита командной строки logcat. Вы можете использовать ее как напрямую, управляя через параметры командной строки, так и воспользоваться Android Studio в которой есть одноименное окно logcat.
Второй вариант предпочтительней, т. к. имеет графический интерфейс, но, естественно, он требует установки самой Android Studio.
Итак, новая утилита FGX Android Log Viewer (далее логвьювер) призвана упростить просмотр логов за счет удобной интеграции в IDE, графического интерфейса и гибкой системы фильтрации.
Внешний вид.
Запустить логвьювер можно из меню Project -> FGX Android Log Viewer.
- Левую горизонтальную часть окна занимает тулбар с основными органами управления, такими как: запуск/остановка захвата логов, очистка списка, экспорт и тд.
- Верхний тулбар содержит выбор активного устройства, выбор приложения, для которого будут собираться логи (либо для всех приложений) и быстрый фильтр.
- Основную часть окна занимает список логов, представленный в виде таблицы.
- Внизу располагается статус бар, отображающий количество элементов списка, в тч отфильтрованных, а так же, текущий статус захвата логов.
- Опциональное окно детальной информации о событии.
Логвьювер поддерживает докинг форм, следовательно может быть как плавающим окном, так и быть закреплен в любом удобном для вас месте в IDE.
Отправка сообщений в лог.
Для начала работы выберите устройство в верхнем тулбаре (в нашем случае это Redmi Note 7) и нажмите кнопку старта захвата логов. Список будет постепенно наполняться записями. Для просмотра детальной информации о записи можно два раза кликнуть по самой записи в списке, либо выделить запись и нажать соответствующую кнопку в левом тулбаре.
Теперь создадим тестовое приложение, запустим его и отправим несколько записей в лог.
Для этого воспользуемся кодом из предыдущей статьи:
uses
System.SysUtils, FGX.Application, FGX.Dialogs, FGX.Log;
procedure TFormMain.fgButton1Tap(Sender: TObject);
begin
TfgLog.Debug('Hello from TfgLog.Debug');
end;
procedure TFormMain.fgButton2Tap(Sender: TObject);
begin
TfgLog.Info('Hello from TfgLog.Info');
end;
Наши сообщения отправлены и встаёт вопрос, как их найти среди огромного списка других сообщений.
Есть два варианта решения задачи:
- Изначально собирать сообщения только от нашего приложения, выбрав его перед захватом лога в верхнем тулбаре (в этом случае количество попадаемых в лог сообщений значительно сократится, но так можно пропустить важные сообщения, в т.ч. падения, от самой Android и/или её компонентов)
- Воспользоваться фильтрацией, которая представлена в логвьювере в двух вариантах: быстром и расширенном.
Воспользуемся вариантом 2.
Варианты фильтрации списка событий.
Окно быстрой фильтрации находится в правой части верхнего тулбара (вариант по-умолчанию):
Фильтрация осуществляется по всем столбцам списка без учёта регистра. Можно указывать несколько значений, разделённых пробелом. В итоговую выборку попадут события, которые соответствуют хотя бы одной подчасти фильтра (OR).
Для включения расширенного фильтра воспользуйтесь кнопкой на левом тулбаре. После включения верхний тулбар приобретёт следующий вид:
Каждое окно ввода "привязано" к одноименному столбцу списка. В итоговую выборку попадут события, которые соответствуют всем заполненным окнам фильтра (AND).
Просмотр событий.
Итак, чтобы найти отправленные ранее сообщения, для начала укажем в окне быстрого фильтра слово "FGX" - этим тегом помечаются все сообщения, отправленные с помощью TfgLog. Как видно на скриншоте, в списке остались только относящиеся к FGX записи, среди которых не составит труда увидеть и искомые записи.
Альтернативный вариант - поиск по Process Id (PID), который можно узнать из окна IDE Events (в нашем случае 25505)
В результате значений будет уже больше, т.к. в итоговую выборку попадают все сообщения, относящиеся к процессу, а не только сообщения, отправленные непосредственно FGX. Но, даже так, найти наши записи не составляет особого труда.
Либо вы можете отфильтровать список непосредственно по части отправленной записи:
Состав и количество фильтров огранивается только вашей фантазией.
Надеемся, что вам понравится опыт работы с новым средством просмотра логов FGX Android Log Viewer.
Спасибо за внимание и удачной отладки!
- 8
9 Comments
Recommended Comments