gpt4 book ai didi

javascript - 如何追踪导致javascript错误的函数并保存到日志

转载 作者:行者123 更新时间:2023-11-29 22:20:20 27 4
gpt4 key购买 nike

现在我使用这段代码将错误日志从用户保存到数据库

window.onerror = function (msg, url, line) {
$.ajax({
type: "POST",
url: "call/savelog.php",
data: {
type : "bug\n" + version,
message : 'Error message: '+msg+'\nURL: '+url+'\nLine Number: '+line
}
});
return true;
};

当 jquery 或 kineticjs 函数发生错误时

如果它在 javascript 控制台中,我会得到类似这样的东西

Uncaught TypeError: Cannot read property '_id' of undefined kinetic-v4.0.2.js:1386
Kinetic.Node.remove kinetic-v4.0.2.js:1386
Kinetic.Layer.remove kinetic-v4.0.2.js:3667
drawCountdown side_play.js:105

所以我会在我的 javascript 文件 side_play.js 中知道我的 drawCountdown 函数导致的错误
但它在我的错误日志中看起来像这样

Error message: Uncaught TypeError: Cannot read property '_id' of undefined
URL: https://myurl.com/js/kinetic-v4.0.2.js
Line Number: 1386

所以我不知道是哪个函数导致了错误。
如何追踪到导致错误的最深层函数并将错误日志保存到数据库

最佳答案

您似乎在使用 window.onerror 事件,这很好。我不建议在你的代码中到处插入 try catch,我和很多记录 JavaScript 错误的人谈过。当你开始插入 try catch 时。

  • 遗漏某些地方的风险很高
  • 正常开发变得更加困难,因为您的 try catch 会为开发人员隐藏错误,您真正想要的是在生产中 try catch 而在开发中没有 try catch

与我交谈过的那些在大型项目中插入 try catch 的人真的很后悔。

你可以试试我的项目Muscula ,它将尝试获取 javaScript 源文件,并向您显示导致错误的代码行。我认为这会解决您的问题。

此外,我在合理范围内(不是所有地方)可能的地方自动插入 try catch,其余错误由 window.onerror 捕获。

要使用 Muscula,您只需安装一个脚本,例如 Google Analytics,然后您就会记录错误。我很乐意让您尝试一下,让我知道它对您有何作用。现在 Muscula 处于公开测试阶段,可以免费使用。用于约。每天 4.000.000 次网页浏览。

关于javascript - 如何追踪导致javascript错误的函数并保存到日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12833503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com