如何使用sentry/raven-js记录所有内容

jan*_*187 6 javascript logging sentry web

我正在开发一个包含大量网页的现有项目.我的任务是使用sentr/raven-js引入logging og客户端脚本错误.

在文档中,它说我需要在try/catch块中包含我需要跟踪的函数 - 这对我来说很熟悉,因为我通常在C#中工作.但我不打算编辑alle页面来包装try/catch中的所有javascript函数.有没有办法记录所有错误?

我尝试了一些东西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;
Run Code Online (Sandbox Code Playgroud)

jan*_*187 5

我的设置是正确的,除了线:

window.onerror = Raven.process
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我无法激发任何错误来触发日志记录事件,但是一旦我设法模拟真正的错误,日志记录工作正常.这条线:

Raven.config('https://@app.getsentry.com/', options).install();
Run Code Online (Sandbox Code Playgroud)

确实捕获了所有错误.


dew*_*ydb 5

重要的是要意识到 raven 不会捕获您通过控制台触发的错误。您需要直接在页面中放置一些错误生成代码,或者从控制台执行以下操作:

window.setTimeout(function(){ foo() });
Run Code Online (Sandbox Code Playgroud)

另外,我认为这样做:

window.onerror = Raven.process
Run Code Online (Sandbox Code Playgroud)

没有必要,Raven 已经以更先进的方式为您做到了。