...
В платформе реализовано разностороннее логирование, которое позволяет не только отследить возможные причины произошедшей ошибки, но и отслеживать работу пользователей и собирать статистику.
Логирование
...
Для осуществления логирования событий, происходящих в приложении используются как текстовые файлы, так и БД.
В
Highlight | ||
---|---|---|
| ||
файл admin.txt |
Используя лог в данном файле можно полностью отследить процесс развертывания решения. При успешном развертывании подробное описание процесса выглядит следующим образом:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
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
|
Хранение логов всех событий мобильного приложения осуществляется в таблице ___Log
Информация |
---|
При отправке ошибки с МА также передается файл info.xml, в котором записаны последние 1000 событий. |
Структура таблицы ___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, startTime, endTime для метода. При необходимости добавляются к URI в виде *DownloadDeviceLog?userId=&startTime=&endTime. Формат даты dd.mm.yyyy или yyyy-mm-dd.
...
Структура таблицы [admin].[DeviceLog]
Имя поля | Назначение |
---|---|
StartTime | Время начала |
EndTime | Время окончания |
FirstSync | 1 - первичная синхронизация, 0 - последующие |
Direction | Направление синхронизации: 0 - upload, 1 - download |
DeviceId | идентификатор устройства |
Login | логин пользователя |
UserId | GUID пользователя |
UserEMail | e-mail пользователя |
ContentLength | размер входящих данных, байт |
ContentType | тип входящих данных |
Accept | тип входящих данных, принимаемых сервером |
AcceptEncoding | кодировка входящих данных, принимаемая сервером |
Host | имя хоста |
ConfigName | имя конфигурации решения |
ConfigVersion | версия решения |
CoreVersion | версия платформы |
ResourceVersion | версия мобильного приложения |
OutputContentLength | размер исходящих данных до сжатия, байт |
StatusCode | статус операции, 200 в случае успеха |
StatusDescription | текст ошибки |
Логирование обменов файлами
...
Для хранения логов обмена файлами между сервером и мобильным клиентов используется таблица [admin].[DeviceLogWebDAV].
Структура таблицы [admin].[DeviceLogWebDAV]
Имя поля | Назначение |
---|---|
StartTime | Время начала |
EndTime | Время окончания |
DeviceId | идентификатор устройства |
UserId | GUID пользователя |
State | Статус |
Error | Ошибка |
Directory | Каталог |
LoadedSize | Объем переданных данных, байт |
LoadedCount | Количество переданных файлов |
DeletedSize | Объём удаленных данных, байт |
DeletedCount | Количество удалённых файлов |
ConfigName | имя конфигурации решения |
ConfigVersion | версия решения |
CoreVersion | версия платформы |
ResourceVersion | версия мобильного приложения |
...