【问题标题】:jQuery - How to Log file on errorjQuery - 如何在错误时记录文件
【发布时间】:2014-09-19 14:36:22
【问题描述】:

我有一个 Javascript 项目,它运行良好...人们已经在使用它,有时它会显示错误...我不希望用户看到错误。我想登录一些 File.txt 错误,或通过电子邮件发送它们,并附上有关错误的详细信息(错误类型、url、...)。我想要这样的东西:

try{
   //code
   var a = 1 + 1;

}catch(e){
   Log( File.txt, e.toString(), url );
 //or
   Mail( dest@exemple.com, e.toString(), url );
}

有可能吗?有没有图书馆可以做到这一点?

【问题讨论】:

    标签: jquery logging error-handling


    【解决方案1】:

    Java 脚本是一种客户端语言,在浏览器不允许您执行任何操作的沙箱中运行。所以没有允许它的内置函数。您可以做的最好的事情是将日志或电子邮件包装在某种模块中,并发出 Web 请求以执行您想要的电子邮件/日志记录。虽然我不确定您为什么要这样做,因为任何错误都应该由您的前端代码处理。

    【讨论】:

      【解决方案2】:

      试试

      var Log = function (url, data) {
          return $.post(url, {
              json: JSON.stringify({
                  "err": data
              })
          }, "json")
      };
      
      try {
          //code
          var a = abc + 1;
      
      } catch (e) {
          //  Log( File.txt, e.toString(), url );
          //or
          //  Mail( dest@exemple.com, e.toString(), url );
          Log("File.php", e.message)
          //    .then(
      
          // function (data) {
          //    console.log(data.err)
          // }, function (jqxhr, textStatus, errorThrown) {
          //    console.log(errorThrown)
          // })
      };
      

      jsfiddle http://jsfiddle.net/guest271314/gu1gmsug/

      【讨论】:

      • console.log 仅在调试器窗口打开时可用,这反过来会导致生产中的错误,您可能需要在登录前检查。
      • 这对我有什么帮助?它将日志发送到哪里?
      • @Thiago At function Log() , url 将是 File.php ,其中 data$.post() 发送记录到 File.txt。需要创建 File.php 来处理帖子,并需要创建 File.txt 来附加 data 到。
      • 该文件是永久文件还是临时文件(可在浏览器打开时查看)?谢谢
      猜你喜欢
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 2015-04-14
      • 2012-10-26
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多