Jump to content

Новое средство просмотра 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.

1.png

  1. Левую горизонтальную часть окна занимает тулбар с основными органами управления, такими как: запуск/остановка захвата логов, очистка списка, экспорт и тд.
  2. Верхний тулбар содержит выбор активного устройства, выбор приложения, для которого будут собираться логи (либо для всех приложений) и быстрый фильтр.
  3. Основную часть окна занимает список логов, представленный в виде таблицы.
  4. Внизу располагается статус бар, отображающий количество элементов списка, в тч отфильтрованных, а так же, текущий статус захвата логов.
  5. Опциональное окно детальной информации о событии.

Логвьювер поддерживает докинг форм, следовательно может быть как плавающим окном, так и быть закреплен в любом удобном для вас месте в 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;

Наши сообщения отправлены и встаёт вопрос, как их найти среди огромного списка других сообщений. 
Есть два варианта решения задачи:

  1. Изначально собирать сообщения только от нашего приложения, выбрав его перед захватом лога в верхнем тулбаре (в этом случае количество попадаемых в лог сообщений значительно сократится, но так можно пропустить важные сообщения, в т.ч. падения, от самой Android и/или её компонентов)
  2. Воспользоваться фильтрацией, которая представлена в логвьювере в двух вариантах: быстром и расширенном.

Воспользуемся вариантом 2.

Варианты фильтрации списка событий.

Окно быстрой фильтрации находится в правой части верхнего тулбара (вариант по-умолчанию):

2.png

Фильтрация осуществляется по всем столбцам списка без учёта регистра. Можно указывать несколько значений, разделённых пробелом. В итоговую выборку попадут события, которые соответствуют хотя бы одной подчасти фильтра (OR).

Для включения расширенного фильтра воспользуйтесь кнопкой на левом тулбаре. После включения верхний тулбар приобретёт следующий вид:

3.png

Каждое окно ввода "привязано" к одноименному столбцу списка. В итоговую выборку попадут события, которые соответствуют всем заполненным окнам фильтра (AND).

Просмотр событий.

Итак, чтобы найти отправленные ранее сообщения, для начала укажем в окне быстрого фильтра слово "FGX" - этим тегом помечаются все сообщения, отправленные с помощью TfgLog. Как видно на скриншоте, в списке остались только относящиеся к FGX записи, среди которых не составит труда увидеть и искомые записи.

4.png

Альтернативный вариант - поиск по Process Id (PID), который можно узнать из окна IDE Events (в нашем случае 25505)

5.png

В результате значений будет уже больше, т.к. в итоговую выборку попадают все сообщения, относящиеся к процессу, а не только сообщения, отправленные непосредственно FGX. Но, даже так, найти наши записи не составляет особого труда.

6.png

Либо вы можете отфильтровать список непосредственно по части отправленной записи:

7.png

Состав и количество фильтров огранивается только вашей фантазией.

 

Надеемся, что вам понравится опыт работы с новым средством просмотра логов FGX Android Log Viewer

Спасибо за внимание и удачной отладки!

 

 

 

  • Like 8

9 Comments


Recommended Comments

Dmitry Sh.

Posted

При выборе пункта меню Project - FGX Android Log Viewer ошибка в Delphi 10.3.3

В 10.4.2 ошибки нет

---------------------------
Error
---------------------------
Error reading btnClear.Images: Property Images does not exist.
---------------------------
OK   
---------------------------

  • Administrators
Viktor Akselrod

Posted

6 часов назад, Dmitry Sh. сказал:

При выборе пункта меню Project - FGX Android Log Viewer ошибка в Delphi 10.3.3

Здравствуйте. 

Исправлено в следующем релизе. 

Спасибо, что сообщили.

  • Administrators
Viktor Akselrod

Posted

Исправление вошло в релиз 1.11.6.1

 

  • Thanks 1
Артем

Posted

А как сделать так чтобы не открывать средство просмотра логов после каждой сборки приложения?

 

  • Administrators
Viktor Akselrod

Posted

2 часа назад, Артем сказал:

А как сделать так чтобы не открывать средство просмотра логов после каждой сборки приложения?

 

Здравствуйте.

Окно просмотрщика поддерживает стандартный механиз доккинга IDE. Это значит, что вы можете встроить окно в любое удобное для вас место в IDE и сохранить раскладку окон (desktop).

Чтобы окно просмотрщика автоматически открывалось при старте отладки, вы можете перезаписать стандартную раскладку Debug Layout.

1.png

 

1. Перемещаем окно просмотрщика в требуемое место.

2. Вызываем диалог Save Desktop->Debug Layout.

3. Подтверждаем перезапись раскладки.

  • Thanks 1
Артем

Posted (edited)

12 часов назад, Viktor Akselrod сказал:

Здравствуйте.

Окно просмотрщика поддерживает стандартный механиз доккинга IDE. Это значит, что вы можете встроить окно в любое удобное для вас место в IDE и сохранить раскладку окон (desktop).

Чтобы окно просмотрщика автоматически открывалось при старте отладки, вы можете перезаписать стандартную раскладку Debug Layout.

1.png

 

1. Перемещаем окно просмотрщика в требуемое место.

2. Вызываем диалог Save Desktop->Debug Layout.

3. Подтверждаем перезапись раскладки.

А с чем может быть связана такая ошибка?

image.thumb.png.646d1a209335834244157336530d1828.png

После 

image.thumb.png.86020340cc74fa1d61d0568e84e7754f.png

Edited by Артем
Артем

Posted (edited)

14 минут назад, Артем сказал:

А с чем может быть связана такая ошибка?

image.thumb.png.646d1a209335834244157336530d1828.png

После 

image.thumb.png.86020340cc74fa1d61d0568e84e7754f.png

При сборке

image.thumb.png.39e5e35d507126f522cc25dc216cd3fd.png

После выхода из дебаг

image.thumb.png.f95582e0f626264a397119dfe4ebfe68.png

 

Edited by Артем
  • Administrators
Viktor Akselrod

Posted

В 20.09.2021 в 07:55, Артем сказал:

А с чем может быть связана такая ошибка?

Здравствуйте.

Такая ошибка не встречалась. Будем выяснять.

  • Administrators
Viktor Akselrod

Posted

Исправлено в 1.12.0.0.

  • Thanks 1
Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...