在生产中捕获JavaScript错误的最佳方法?

时间:2010-09-13 14:11:57

标签: javascript debugging frontend

我有一个严重的JavaScript问题,很难在我们的dev / test / prod环境中重现。尽管如此,我们的客户仍在不断报道。有时我们认为它是特定于浏览器的 - 有时我们认为它是特定于行动的 - 有时我们认为它与cookie有关。这是一个艰难的过程,我们被拉到了太多不同的方向,而且它们都很短暂。

我们认为问题出现在我们的一个主要JavaScript文件中 - 但该文件非常庞大。我们过去在这个文件中已经指出了其他问题 - 并且防止未来成功使用try / catch块的问题 - 但是,目前我们还不确定这些新问题发生在哪里。

我们搜索了我们的服务器日志,我们发现的信息没用。

我想知道使用JavaScript日志框架是否有助于解决我们的问题。实现像“log4javascript”这样的东西会捕获/记录我们用户的活动,而不仅仅是我们吗?有什么建议?还有其他人遇到过这种情况吗?您采用了哪些策略来更好地理解您的错误?

2 个答案:

答案 0 :(得分:20)

log4javascript的AjaxAppender可用于向服务器发送日志消息。

var log = log4javascript.getLogger("serverlog");
var ajaxAppender = new log4javascript.AjaxAppender("http://example.com/clientlogger");
log.addAppender(ajaxAppender);

您可以在代码中添加信息日志记录调用,并添加window.onerror处理程序以捕获代码中try/catch块未捕获的错误:

window.onerror = function(errorMsg, url, lineNumber) {
    log.fatal("Uncaught error " + errorMsg + " in " + url + ", line " + lineNumber);
};

您还需要在服务器上创建一些内容来处理来自浏览器的日志记录请求。

完全披露:我是log4javascript的作者。

答案 1 :(得分:3)

  1. 看看错误
  2.   

    http://errorception.com/

    1. 同时尝试Atatus - 这是一个新的JavaScript错误跟踪服务以及现代网络应用的真实用户监控(RUM)。
    2.   

      https://www.atatus.com/

      1. BugSense还发布了他们的bug跟踪的html5版本
      2.   

        https://www.bugsense.com/docs/html5

        所以,你得到一个漂亮的界面来跟踪它们