Логирование событий в приложении (trace)
В системной таблице as_trace хранятся данные по работе приложения.
Поле code определяет тип события:
- DBLREQ - фиксируем факт множественных одинаковых запросов со страницы в короткий промежуток времени (например, если форму поместить в каждую строку таблицы)
- EXCEPTION - исключение (ошибка) при работе программы
- HUGE - запрос с большим количеством выходных строк (подобные запросы могут создавать нагрузку на процессор)
- NOACCESS - отказ в доступе к ресурсу (компонент или страница).
- NOTFOUND - переход на несуществующую страницу
- PRINT - смотр состояния переменных в хранимых процедурах через execute as_print @str
- PV - page visit. Фиксация посещения страницы пользователем (в appsettings.config должно быть logUserAction=1)
- REG - факт регистрации на сайте (через as_trace_warn)
- SEARCH - осуществление поиска по сайту через элемент вверху каждой страницы
- SF - safe form. Сохранение некоторой формы на сайте (в appsettings.config должно быть logUserAction=1)
- SLOW - фиксация медленного Ajax запроса
- SYNC - фиксация работы периодических событий (управление в /syssp)
- TG - события (ошибки) телеграма
Вы можете создавать свои коды событий и записывать в хранимых процедурах через exec as_trace_warn
Запрос для получения статистики по элементам trace (он есть в Диагностике /diag):
select
upper(isnull(code, '')) code,
count(*) totalCount,
isnull((select count(*) from as_trace t3 where t3.code=t1.code and cast(created as date) > cast(dateadd(month, -1, getdate()) as date) ), 0) [month],
isnull((select count(*) from as_trace t3 where t3.code=t1.code and cast(created as date) > cast(dateadd(week, -1, getdate()) as date) ), 0) [week],
isnull((select count(*) from as_trace t3 where t3.code=t1.code and cast(created as date) = cast(dateadd(day, -1, getdate()) as date) ), 0) yesterday,
isnull((select count(*) from as_trace t2 where t2.code=t1.code and cast(created as date) = cast(getdate() as date) ), 0) today,
isnull((select count(*) from as_trace t2 where t2.code=t1.code and created > dateadd(hour, -1, getdate()) ), 0) lastHour,
isnull((select count(*) from as_trace t2 where t2.code=t1.code and created > dateadd(minute, -5, getdate()) ), 0) last5Min
from as_trace t1
group by code
order by code
Таблицу as_trace можно периодически чистить. В ней не нужно сохранять критичные бизнес-данные.
Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты Как быстро перенести решение (таблицы, формы, страницы) на другую базу? Где я могу редактировать процедуру поиска, процедуру общих элементов Layout, процедуры периодического запуска и др? Как изменить длительность показа сообщений Отслеживание изменений хранимых процедур и страниц (logChanges) Форма обратной связи по ошибкам, предложениям suggestion Как разграничивать права на уровне бизнес-логики хранимых процедур Безопасная обработка данных и проверка доступа в хранимых процедурах Использование типовой разметки в виде сниппетов для решения различных задач Работа с редактором кода в личном кабинете разработчика Логирование изменений объектов на примере хранимых процедур Как логировать клики на определенных элементах в системе Обработка старых браузеров (сообщение об устаревшем браузере) Как отследить и ограничить большое количество однородных запросов на сайте Безопасность. Как скрыть некоторые заголовки (http headers) в запросах Логирование событий в приложении (trace) Отображение сообщения об offline (Нет сети) Рабочее место разработчика через терминал Обновляемые метки времени в сообщениях на сайте Подсказка по интерфейсам хранимых процедур компонентов Защита от CSRF атак через дополнительный токен в формах Дополнительные параметры в @parameters (во многих хранимых процедурах) Как логировать события в Falcon в другую базу (чтобы ограничить рост основной базы данных) Сообщение об использовании куки (Cookies) Действия в браузере actions JSON Как искать код некоего компонента (таблицы, формы и т.д.) на странице Как сделать так, чтобы почта отправлялась асинхронно без задержек Настройка диалоговых окон и alert окошек Работа со сниппетами кода
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта