Журнал пользовательских ошибок#
Журнал пользовательских ошибок предназначен для регистрации ошибок приложения, которые дошли до общего обработчика ошибок.
Журнал фиксирует:
идентификатор ошибки;
текст сообщения;
stack trace;
технический контекст возникновения.
Журнал используется для:
анализа инцидентов;
поиска ошибки по идентификатору;
диагностики причин возникновения ошибок.
Журнал работает в режиме просмотра. Ручное создание, изменение и удаление записей через пользовательский интерфейс не предусмотрены.
Журнал доступен по пути: Аудит > Журнал пользовательских ошибок.
Дополнительно доступна форма поиска по идентификатору ошибки: Сервис > Поиск ошибки по идентификатору.
Интерфейс журнала#
Интерфейс журнала пользовательских ошибок используется для просмотра зарегистрированных ошибок и анализа технической информации по выбранной записи.
Форма Btk_ErrorAuditAvi состоит из:
панели фильтрации;
списка пользовательских ошибок;
операций для просмотра и выгрузки информации по ошибке.
Панель фильтрации#
В верхней части формы расположены фильтры для отбора записей журнала.
Поле |
Описание |
|---|---|
|
Дата и время начала периода |
|
Дата и время окончания периода |
|
Идентификатор ошибки |
|
Сообщение ошибки |
|
Stack trace |
Фильтр flt_dDateBefore по умолчанию устанавливается на начало текущего дня через truncDate(sysDate()).
Примечание
Явной проверки обязательности периода в форме нет. Для эксплуатации рекомендуется не очищать дату начала периода, чтобы ограничивать объем выборки и ускорять построение списка.
Список пользовательских ошибок#
В основной таблице отображаются пользовательские ошибки с учетом заданных фильтров.
Колонка |
Описание |
|---|---|
Идентификатор ошибки |
Уникальный идентификатор ошибки |
Пользователь |
Пользователь, у которого возникла ошибка |
Время возникновения ошибки |
Дата и время возникновения ошибки |
Сообщение ошибки |
Текст сообщения ошибки |
Стек ошибки |
Stack trace |
Приложение |
Информация о приложении |
Узел кластера |
Идентификатор узла кластера |
IP-адрес клиента |
IP-адрес клиента, с которого зафиксирована ошибка |
Доступные действия#
В форме доступна операция downloadStack() — выгрузка сообщения ошибки и stack trace в файл.
Операция используется, когда нужно передать техническую информацию разработчику или приложить ее к обращению по инциденту.
Настройка журнала#
Журнал открывается в режиме просмотра.
Через интерфейс недоступны:
создание записей;
редактирование записей;
удаление записей.
Создание структуры и регистрация очистки выполняются методом dataInstall().
События формирования записей#
Запись в журнал создается автоматически при возникновении пользовательской ошибки, дошедшей до общего обработчика ошибок приложения.
Основанием является событие ErrorEvent.
При обработке события фиксируются:
идентификатор ошибки;
текст сообщения;
stack trace;
сведения о приложении;
идентификатор узла кластера;
IP-адрес клиента.
После этого вызывается метод записи в журнал.
Если ошибка перехвачена и обработана до попадания в общий обработчик, запись в журнал может не создаваться.
Хранение данных#
Физическое хранение выполняется в таблице aud.btk_errorAudit.
Для таблицы создаются:
первичный ключ;
sequence
aud.btk_errorAudit_seq;индекс по полю
dDate;индекс по полю
sErrorId.
Дополнительно регистрируется задание очистки через regCleanupJob().
По умолчанию срок хранения записей составляет 30 дней.
Хранимые поля#
Основные поля таблицы:
Поле |
Описание |
|---|---|
|
Идентификатор записи |
|
Идентификатор ошибки |
|
Пользователь |
|
Дата и время возникновения ошибки |
|
Текст сообщения ошибки |
|
Stack trace |
|
Информация о приложении |
|
Идентификатор узла кластера |
|
IP-адрес клиента |
Программные интерфейсы#
Основная логика реализована в Btk_ErrorAuditPkg.
Ключевые методы:
insertAud(...)— добавляет запись в журнал;clearOld(...)— удаляет устаревшие записи;getByErrorId(...)— ищет запись по идентификатору ошибки;getById(...)— получает запись по идентификатору.
Особенности эксплуатации#
Журнал ведется автоматически и фиксирует только ошибки, прошедшие через общий обработчик.
Требования к безопасной настройке журналов, разграничению доступа, хранению и использованию журналов при расследовании инцидентов описаны в документе «Логирование, аудит и управление инцидентами», в разделах Защита журналов и Аудит пользовательской активности.
Объем журнала зависит от:
количества ошибок;
размера текстовых полей
sMessageиsStackTrace.
При эксплуатации рекомендуется:
контролировать рост таблицы;
анализировать повторяемость ошибок по
sErrorId;использовать штатную очистку устаревших записей.
Хранение и очистка#
По умолчанию срок хранения записей составляет 30 дней.
Очистка выполняется автоматически через зарегистрированное задание CleanupJob. Удаляются записи старше установленного срока хранения.
Регулярная очистка необходима, потому что журнал содержит длинные текстовые поля. При накоплении данных увеличивается размер таблицы и индексов, а выборки начинают выполняться медленнее.
При необходимости длительного хранения рекомендуется использовать архивирование.