2014-02-04 4 views
6

Я работаю над существующим проектом с большим количеством веб-страниц. Моя задача состоит в том, чтобы внедрить протоколирование ошибок скрипта клиента, usingsentr/raven-js.Как я могу регистрировать все с помощью watchry/raven-js

В документах сказано, что мне нужно обернуть функции, которые мне нужно отслеживать в блоках try/catch - это мне знакомо, поскольку я обычно работаю на C#. Но я не хочу редактировать все страницы, чтобы обернуть все функции javascript в try/catch. Есть ли способ регистрировать ВСЕ ошибки?

Я попробовал что-то с window.onError = Raven.process, но у меня не было ни одного входа.

Может ли кто-нибудь показать мне то, что мне не хватает? Моя установка такова:

var options = { 
    logger: 'my-test-logger', 
    whitelistUrls: [ 
     /localhost/, 
     /localhost:2109/ 
    ] 
}; 
Raven.config('https://<public-key-removed>@app.getsentry.com/<project-key-removed>', options).install(); 
window.onerror = Raven.process; 

ответ

5

Моя установка была правильной, за исключением линии:

window.onerror = Raven.process 

По некоторым причинам я не мог спровоцировать какие-либо ошибки, чтобы огонь событие протоколирования, но как только мне удалось имитировать реальную ошибку, журнал работал просто отлично. Линия:

Raven.config('https://@app.getsentry.com/', options).install(); 

действительно улавливает все ошибки.

+0

+1. И в дополнение к этому ответу, Ворон только поймал тех ** Неоткрытых Исключений **. Эти нечеткие исключения, запускаемые в консоли, также игнорируются Raven. – Witcher42

3

Важно понимать, что ворон не фиксирует ошибки, которые вы запускаете с помощью консоли. Вы должны поставить некоторые генерирующий код ошибки непосредственно на странице, или сделать что-то подобное из консоли:

window.setTimeout(function(){ foo() }); 

Кроме того, я думаю, что делать:

window.onerror = Raven.process 

ненужно, Raven уже делает это для вас, гораздо более продвинутым способом.

Смежные вопросы