【问题标题】:Error handling and saving logs to text files错误处理和将日志保存到文本文件
【发布时间】:2012-11-30 11:26:48
【问题描述】:

我想在 javascript 中进行错误处理。

我想记录 javascript 中发生的错误。

我不想使用数据库来存储错误。我想将所有错误存储在 txt 文件中(该 txt 文件应该存在于托管该网站的服务器中。这样其他人就不能访问该文件。

如何做到以上要求。

我在谷歌上搜索并找到了

function WriteToFile() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\Test.txt", true);
s.WriteLine('Hello');
s.Close();
}

这也不是在所有情况下都有效。

1.您使用的是非 ie 浏览器(不支持 activex 对象)

2。您在安装了 sp2 的 xp 机器上使用 ie 浏览器,并且 activex 对象被阻止

所以请帮我解决这个问题。

提前致谢。

【问题讨论】:

  • 您找到的代码是用于客户端文件的,因此即使所有浏览器都支持它,也无法满足您的目的。您可以向服务器发出 Ajax 请求并使用服务器端代码将数据写入文件...
  • 使用XMLHttpRequest 将消息发送到在您的主机上运行的servlet,该servlet 将日志行存储在数据库或文件中。
  • Javascript 在哪里执行,在浏览器中?您要将错误日志存储在哪里?请注意,浏览器不允许任意网站向本地磁盘写入文件。
  • 意味着我不能通过 javascript 记录错误而不使用服务器端 ajax 调用:(

标签: javascript html error-handling


【解决方案1】:

首先使用 try/catch 来检测错误:

try
{
    // code that could error here
}
catch(err)
{
    // do an ajax call to the server
}

catch 块中,您可以对服务器进行ajax 调用。在服务器上,您将需要一些服务器端脚本(例如 PHP、ASP 等)来处理请求并将错误记录到本地文本文件中。在上面的 catch 块中,err.message 将为您提供错误消息字符串,您可以将其包含在您的 ajax 调用中。

【讨论】:

  • 我使用的是 html 页面,所以我没有任何代码。所以我不能在那里使用ajax来调用webmethod。有没有办法使用javascript在txt文件中记录错误
【解决方案2】:

您可以使用替代方法来处理错误,如下代码

jQuery.ajax({
      type: "POST",
      url: "urlpage",
      dataType: "html",
      data: "types":$("#catid").val(),
      success: function (response) {
              alert("Successfully!!!");
      },
      error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
      }
    });

当发生任何错误时,您可以再次调用另一个 ajax 函数或相同的函数。

这主要适用于处理错误的所有 ajax 调用,试试吧。

【讨论】:

  • 我使用的是 html 页面,所以我没有任何代码。所以我不能在那里使用ajax来调用webmethod。有没有办法使用javascript在txt文件中记录错误
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 2016-05-26
  • 1970-01-01
相关资源
最近更新 更多