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

时间:2014-02-04 08:32:03

标签: javascript logging web sentry

我正在开发一个包含大量网页的现有项目。我的任务是使用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;

4 个答案:

答案 0 :(得分:5)

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

window.onerror = Raven.process

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

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

确实捕获了所有错误。

答案 1 :(得分:4)

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

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

另外,我认为这样做:

window.onerror = Raven.process

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

答案 2 :(得分:0)

Raven将从版本1开始默认记录所有window.onerror错误。

请参阅https://raven-js.readthedocs.org/en/latest/config/index.html#collectwindowerrors

答案 3 :(得分:0)

尝试以下代码以禁用raven.js中的日志

Raven.config('your dsn', {
  autoBreadcrumbs: {
    console: false
  }
});