Поймать все ошибки JavaScript и отправить их на сервер

мне было интересно, есть ли у кого-нибудь опыт работы с ошибками JavaScript глобально и отправлять их из браузера клиента на сервер.

Я думаю, что моя точка зрения совершенно ясна, я хочу знать каждое исключение,ошибку, ошибку компиляции и т. д. это происходит на стороне клиента и отправляет их на сервер, чтобы сообщить о них.

Я в основном использую MooTools и head.js (для стороны JS) и Django для стороны сервера.

6 ответов


недавно я тестировал постовой на производстве, и он отлично работает (JS и другие языки, такие как PHP)

1 - это с открытым исходным кодом (вы можете установить его на свой сервер) 2 - Вы можете использовать бесплатный план (100 отчетов / день)

или установите его на свой сервер:github.com/getsentry


Я бы проверил


и http://jslogger.com сервис может помочь с этим:

Log Javascript ошибки и события в облаке

от http://jslogger.com/features:

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

отказ от ответственности: не связан с сервисная компания.


вы можете попробовать Atatus - это новый сервис отслеживания ошибок JavaScript наряду с реальным пользовательским мониторингом (RUM) для современных веб-приложений.

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

наряду с захватом ошибок мы также фиксируем время загрузки страницы и показываем его в разных перспективах-Geo, браузер, детализация страницы, гистограмма страницы, Ajax Мониторинг и мониторинг транзакций.

https://www.atatus.com/

доступные документы:https://www.atatus.com/docs

отказ от ответственности: я веб-разработчик Atatus.


если ваш сайт использует Google Analytics, вы можете делать то, что я делаю:

window.onerror = function(message, source, lineno, colno, error) {
  if (error) message = error.stack;
  ga('send', 'event', 'window.onerror', message, navigator.userAgent);
}

несколько комментариев к приведенному выше коду:

  • для современных браузеров регистрируется полная трассировка стека.
  • для старых браузеров, которые не фиксируют трассировку стека, вместо этого регистрируется сообщение об ошибке. (В основном более ранняя версия iOS в моем опыте).
  • версия браузера пользователя также регистрируется, поэтому вы можете видеть, какие версии ОС/браузера бросают ошибки. Это упрощает приоритизацию ошибок и тестирование.
  • этот код работает, если вы используете Google Analytics с " analytics.js",такой. Если вы используете "gtag.js " вместо этого,такой, вам нужно настроить последнюю строку функции. подробности смотрите здесь.

как только код будет на месте, вот как вы просматриваете ошибки Javascript ваших пользователей:

  1. в Google Analytics нажмите кнопку Behavior раздел, а затем Top Events отчет.
  2. вы получите список категорий событий. Нажмите window.onerror в списке.
  3. вы увидите список трассировок стека Javascript и сообщений об ошибках. Добавьте столбец в отчет для версий ОС/браузера пользователей, щелкнув Secondary dimension кнопка и ввод Event Label в появившемся текстовом поле.
  4. отчет будет выглядеть как скриншот ниже.
  5. для перевода строк ОС / браузера на более читаемый человеком описания, я копирую-вставляю их в https://developers.whatismybrowser.com/useragents/parse/

enter image description here


возможно, вы захотите проверить эту новую услугу,http://rescuejs.com/.

позволяет регистрировать все ваши ошибки JavaScript без написания кода на стороне сервера. Он также отслеживает версии браузера и так далее.

Я не уверен, что буду считать их 100% "готовым предприятием", но это определенно стоит проверить.