6

我正在处理一个现有的项目,其中包含很多网页。我的任务是使用sentr/raven-js 介绍日志记录og 客户端脚本错误。

在文档中,它说我需要将我需要跟踪的函数包装在 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;
4

4 回答 4

5

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

window.onerror = Raven.process

由于某种原因,我无法引发任何错误来触发日志事件,但是一旦我设法模拟了一个真正的错误,日志就可以正常工作。该行:

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

确实捕获了所有错误。

于 2014-02-04T11:45:57.787 回答
5

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

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

另外,我认为这样做:

window.onerror = Raven.process

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

于 2015-04-03T23:09:45.103 回答
1

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

Raven.config('your dsn', {
  autoBreadcrumbs: {
    console: false
  }
});
于 2019-06-13T11:44:08.337 回答
0

默认情况下,Raven 将从版本 1 记录所有 window.onerror 错误。

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

于 2015-04-17T08:44:36.273 回答