Sentry-javascript: 与 wrapConsoleMethod() 有什么关系?

创建于 2016-05-17  ·  15评论  ·  资料来源: getsentry/sentry-javascript

我最近注意到 raven 现在包含了所有控制台方法,但我没有看到任何描述原因的文档? 或者它怎么可能有用? 有没有人遇到过这个问题,可以指点我一些关于它使用的文档吗?

我遇到的问题是我无法再使用 console.log() 进行简单的调试..源变成了 raven.js 并且我无法再跟踪它从我的代码中的哪里发出?

最初发布在 docs repo 上,然后关闭

最有用的评论

从 3.5.0 开始,您可以禁用控制台面包屑的自动收集:

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

或者您可以完全禁用自动面包屑收集:

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

更多关于这方面的信息在docs 中

所有15条评论

@grapho – 控制台语句被收集并作为面包屑传递。

我可以看到它是多么令人恼火,由于检测console.log ,devtools 中的 URL 将不再将您带到源中的原始日志语句。 我们可以将检测console.log设为可选。 或者,引入Raven.log作为记录您自己的面包屑的替代 API。

@benvinegar我保证我不会被激怒...如果有一种方法可以在开发环境中使用面包屑或等效 api..console.log 的地方,我很想知道如何?

我可以习惯于放置断点和调试器语句。如果这是首选的解决方法?

我想我很少真正使用到控制台语句的链接,甚至没有注意到它已经消失了:) 我个人大部分时间都在使用 Chrome 调试器。

如果有一种方法可以在开发环境中使用面包屑或等效的 api

如果您只想设置面包屑,今天可以使用Raven.captureBreadcrumb 。 API 还没有真正充实。 这仍然是一个新功能,我们仍在努力解决一些问题。

如果这不是一个严重的障碍,我想让这个问题保持开放一段时间,看看我们是否能得到更多反馈。

我认为这是一个主要问题,特别是它没有在任何地方记录并且不能被禁用。
可能有大量的 console.log 我们不想发送给 Sentry。

由开发人员选择发送的内容和时间

还有一件事我没有提到,像 Ember.js 这样的一些 JS 框架倾向于从生产版本中去除 console() 方法。 只是考虑的食物。

上面的评论似乎不正确,抱歉。

@benvinegar我很感激你愿意让票保持打开状态,可能值得进一步调查:)

@benvinegar这个问题根本不是一个严重的

这是我目前的解决方案。 我意识到我可以_不_在开发模式下初始化 raven.js 客户端...... raven/哨兵报告,无论如何只对大多数人(我想)在生产应用程序中真正有用。

话虽如此。 引入developmentMode配置标志可能仍然有一些用处,这将允许消息和错误传递到开发控制台(也就是禁用一些“全局”处理)。同时保持乌鸦。 Node.js 客户端在后台安静,因此如果我们愿意,我们仍然可以通过显式触发 raven api 手动发送错误报告。

让我知道你对此的感受。 否则我不会太担心它,因为这个问题主要是由于我对 raven 缺乏经验以及如何/何时使用它造成的。

可能有大量的 console.log 我们不想发送给 Sentry。

实事求是——你真的想禁用它吗? 我不想在这里听起来被动攻击,我只是想知道这是否是一个严重的问题,你想禁用它。

我认为这是一个主要问题,尤其是它没有记录在任何地方并且

它记录在 Raven.js 变更日志中。 我们还发布了一篇关于面包屑导航console.log语句,并且这篇文章在应用内广播给所有托管的 Sentry 用户。 很抱歉我们没能联系到您,但我认为我们已经做出了真正的努力来传达这一点。

另请注意,这就是 Raven.js 3.0.x 成为主要版本的原因,因为它引入了潜在的破坏性更改。 我希望人们在升级到主要版本之前查看变更日志。

......不能被禁用。

同时,您仍然可以运行 Raven 2.x。

@benvinegar我很感激你愿意让票保持打开状态,可能值得进一步调查:)

我想在急于寻求解决方案之前收集更多反馈。 特别是因为 3.0.x 已经上线了几个星期,我们得到的大部分反馈都是积极的。

@benvinegar这个问题根本不是一个严重的

是的,我有一种感觉,你比什么都好奇。

话虽如此。 引入 developmentMode 配置标志可能仍然有一些用处,这将允许消息和错误传递到开发控制台(也就是禁用一些“全局”处理)。同时保持 raven.js 客户端在背景,因此如果我们愿意,我们仍然可以通过显式触发 raven api 手动发送错误报告。

是的,问题在于,在生产中也需要控制台语句进行调试是有争议的。 我宁愿让它可配置。 而且,我们会的。 我只想先获得更多反馈/衡量影响。

Anwyays,真的很感谢你在这里发表的评论。

@benvinegar : 👍 用于配置选项——理想情况下允许手动过滤掉不需要的条目(或者更确切地说是功能)

这也不断出现在支持跟踪器上。 我认为我们应该添加一个方法来禁用它。

请使面包屑功能可选,包装控制台方法是有风险的,并且容易与许多其他库和 3rd 方脚本也尝试冲突。

从 3.5.0 开始,您可以禁用控制台面包屑的自动收集:

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

或者您可以完全禁用自动面包屑收集:

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

更多关于这方面的信息在docs 中

autoBreadcrumbs不在打字稿声明文件中。 是故意的吗?

https://github.com/getsentry/raven-js/blob/master/typescript/raven.d.ts

我们最近一直在为 TypeScript 声明苦苦挣扎。 欢迎投稿。

此页面是否有帮助?
0 / 5 - 0 等级