【问题标题】:How do I log everything with sentry/raven-js如何使用 sentry/raven-js 记录所有内容
【发布时间】:2014-02-28 02:59:48
【问题描述】:

我正在处理一个现有项目,其中包含很多网页。我的任务是使用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;

【问题讨论】:

    标签: javascript logging web sentry


    【解决方案1】:

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

    window.onerror = Raven.process
    

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

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

    确实捕获所有错误。

    【讨论】:

    • +1。除了这个答案,Raven 只捕获了那些 Uncaught Exceptions。 Raven 也会忽略控制台中触发的那些未捕获的异常。
    【解决方案2】:

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

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

    另外,我认为这样做:

    window.onerror = Raven.process
    

    没有必要,Raven 已经为你做到了,而且方式更加先进。

    【讨论】:

    • 你来自天堂! ?
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      猜你喜欢
      • 2016-06-13
      • 2015-12-07
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      相关资源
      最近更新 更多