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