Перехват ошибок на front-end с помощью js

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

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

Предлагаемый подход основан на обработке в js ошибок объекта браузера window и отправке этих данных на сервер.

Пусть скрипт на сервере находится по адресу: /front-end/logger. Он читает GET параметры и где то их сохраняет. А пока нужно выполнить перехват и обработку ошибки на front-end:

Скрипт собирает следующий пакет данных:

Если удаётся получить http код ошибки, то скорее всего вы найдете её и в логах на веб-сервере (либо в логах одного из прокси или кеширующих серверов). Если же вместо http кода вы получаете ‘FETCH ERROR’, то файл был блокирован до запроса на сервер и надо разбираться почему это происходит со стороны пользователя.

Ошибки типа LINK — это ошибки при загрузке CSS/JS файлов. Они могут сильно влиять на работу сайта, им нужно уделить пристальное внимание.

Back-end часть logger-а для Drupal

Придумать куда писать логи на back-end, вам не составит труда для вашего частного случая. Но у меня есть готовый вариант для cms drupal 7, и я им здесь поделюсь.

Одна функция объявляет end-point для вызова логирования, а вторая функция — запись лога в системный лог cms.

Мало букафф? Читайте есчо !

Обработка события click или touchstart

Октябрь 31, 2018 г.

Широкое применение мобильных устройств для доступа в интернет накладывает свои специфические требования на разработку веб-сайтов. Привычный обработчик onclick может срабатывать совместно с ontouchstart, а может не срабатывать вовсе на мобильном устройстве. ...

Читать

Как избежать изменения позиции scroll в документе после установки #hash

Февраль 21, 2020 г.

При установке значения hash в url окна, к примеру так: window.location.hash = '#something'; браузер прокрутит документ до позиции элемента вида <a name='something'></a>. Иногда такое поведение является не желательным. После изменения позиции ...

Читать

Чистим пользовательский ввод числа в javascript

Февраль 3, 2017 г.

Это еще одна из функций-хелперов. На этот раз мы пытаемся прочитать введенное пользователем число средствами javascript. Javascript уже имеет довольно не плохую функцию parseFloat(strValue). Но она обладает некоторыми особенностями. В частности, ...

Читать

Вставка html entites в текстовые ноды

Апрель 5, 2025 г.

Делюсь еще одним лайфхаков, как в плагине CKE5 вставить htmlentity. При вставке текста в модель, CKEditor будет преобразовывать html символы вроде '&' и '>'. Но что делать, если нужно вставить символ в виде html кода? Рассмотрим следующий ...

Читать
 

Комментарии к «Перехват ошибок на front-end с помощью js»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: