Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

В платформе реализовано разностороннее логирование, которое позволяет не только отследить возможные причины произошедшей ошибки, но и отслеживать работу пользователей и собирать статистику.

Логирование

...

Для осуществления логирования событий, происходящих в приложении используются как текстовые файлы, так и БД.

В 

Highlight
colorAliceBlue
файл admin.txt
 записываются события, касающиеся развертывания решения на сервере и его дальнейшей инициализации. Файл располагается в директории  решения, по следующему адресу: %solution_name%\log

Используя лог в данном файле можно полностью отследить процесс развертывания решения. При успешном развертывании подробное описание процесса выглядит следующим образом:

 

Блок кода
languagexml
themeRDark
linenumberstrue
30.06.2015 10:06:41 Start building solution
30.06.2015 10:06:41: DB scripts ok
30.06.2015 10:06:43: Database ok
30.06.2015 10:06:57: Provision ok
30.06.2015 10:06:57: Filters ok
30.06.2015 10:06:57: Sync patch ok
30.06.2015 10:06:59: Admin ok
30.06.2015 10:07:00: Clustered keys patch ok
30.06.2015 10:07:00: Default NEWSEQUENTIALID values on tabular sections ok
30.06.2015 10:07:00: initial data load ok
30.06.2015 10:07:00: sqlite ok
30.06.2015 10:07:00: Code generation ok
30.06.2015 10:07:01: Client dll ok
30.06.2015 10:07:01: Server dll ok
30.06.2015 10:07:01: Resources ok
30.06.2015 10:07:01: Solution has been successfully built

 

Хранение логов всех событий мобильного приложения осуществляется в таблице

Highlight
colorAliceBlue
___Log

Информация

При отправке ошибки с МА также передается файл info.xml, в котором записаны последние 1000 событий.

Структура таблицы

Highlight
colorAliceBlue
___Log
:

Имя поляНазначение
DateДата и время события
EventВид события
Contentдополнительная информация о событии

Виды событий

ВидОписаниеСодержимое
application_closedОкончание работы приложения 
application_maximizedПриложение развернуто 
application_minimizedПриложение свернуто 
application_startedНачало работы приложения 
clickedКлик пользователемid_элемента; заголовок_элемента
crashОшибка, приводящая к вылету приложениятекст_ошибки
errorОшибка, не приводящая к вылету приложениятекст_ошибки
screen_openedЗавершение загрузки экрана 
screen_openingНачало загрузки экранаимя_экрана; имя_контроллера; список_параметров
sync_downloadСписок загруженных сущностейтип_сущности количество; ...
sync_download_tombstoneСписок загруженных удаленных сущностейтип_сущности количество; ...
sync_finishedОкончание синхронизации 
sync_startedНачало синхронизации данных 
sync_uploadСписок выгруженных сущностейтип_сущности количество; ...
sync_upload_tombstoneСписок выгруженных удаленных сущностейтип_сущности количество; ...
text_inputВвод текста пользователемid_элемента; текст
workflow_backПереход назад по рабочему процессу 
workflow_back_toПереход назад на шаг рабочего процессаимя_шага
workflow_finishedТекущий рабочий процесс остановленпричина
workflow_forwardПереход на шаг рабочего процессаимя_шага; параметры
workflow_forward_not_allowedПереход на шаг рабочего процесса запрещенимя_шага; параметры
workflow_pausedТекущий рабочий процесс приостановлен 
workflow_startedРабочий процесс запущенимя_рабочего_процесса

Логирование обменов данными

 

...

При логировании обменов данными, в качестве хранилища логов используется  БД SQL. Каждый лог хранится в отдельной таблице, каждая строка которой является отдельным событием.

...

Структура таблицы [admin].[AsyncUploadSession]:

Имя поляНазначение
StartTimeВремя начала
EndTimeВремя окончания
Status

Статус синхронизации

 

В поле Status содержится полная информация о статусе транзакции. В поле может отображаться следующая информация:

...

Информация

Вы можете получить данные логов, программно вызвав метод сервера DownloadDeviceLog

 DownloadDeviceLog

Параметры

Параметр
userId
startTimedd.mm.yyyy или yyyy-mm-dd
endTime dd.mm.yyyy или yyyy-mm-dd

Опциональные параметры userId, startTime, endTime для метода. При необходимости добавляются к URI в виде *DownloadDeviceLog?userId=&startTime=&endTime. Формат даты dd.mm.yyyy или yyyy-mm-dd. 

пример запроса:
http://192.168.0.152/bitmobile/synchro3/admin/DownloadDeviceLog?userId=8D3E3420-F723-11E5-80FD-902B3416D383&startTime=2016.09.14&endTime=2016.09.15

http://joxi.ru/eAORRdZF4MEw42


...





Структура таблицы [admin].[DeviceLog]

Имя поляНазначение
StartTimeВремя начала
EndTimeВремя окончания
FirstSync1 - первичная синхронизация, 0 - последующие
DirectionНаправление синхронизации: 0 - upload, 1 - download
DeviceIdидентификатор устройства
Loginлогин пользователя
UserIdGUID пользователя
UserEMaile-mail пользователя
ContentLengthразмер входящих данных, байт
ContentTypeтип входящих данных
Acceptтип входящих данных, принимаемых сервером
AcceptEncodingкодировка входящих данных, принимаемая сервером
Hostимя хоста
ConfigNameимя конфигурации решения
ConfigVersionверсия решения
CoreVersionверсия платформы
ResourceVersionверсия мобильного приложения
OutputContentLengthразмер исходящих данных до сжатия, байт
StatusCodeстатус операции, 200 в случае успеха
StatusDescriptionтекст ошибки

Логирование обменов файлами

...

Для хранения логов обмена файлами между сервером и мобильным клиентов используется таблица [admin].[DeviceLogWebDAV].

 

Структура таблицы [admin].[DeviceLogWebDAV]

Имя поляНазначение
StartTimeВремя начала
EndTimeВремя окончания
DeviceIdидентификатор устройства
UserIdGUID пользователя
StateСтатус
ErrorОшибка
DirectoryКаталог
LoadedSizeОбъем переданных данных, байт
LoadedCountКоличество переданных файлов
DeletedSizeОбъём удаленных данных, байт
DeletedCountКоличество удалённых файлов
ConfigNameимя конфигурации решения
ConfigVersionверсия решения
CoreVersionверсия платформы
ResourceVersionверсия мобильного приложения

 

 

 

...