Tow*_*wer 7 javascript debugging logging exception
我正在写一个相当大的JavaScript软件.我需要跟踪调用,记录事件,调试操作,同时保持跨浏览器的性能和可移植性.
Webkit和Firebug都提供了控制台对象,其中包括trace(),log(),error(),warning()等等.它们很棒,但是当浏览器是IE或Opera时我该怎么办?
想象一下,拥有一个大型应用程序,你肯定希望看到它正在进行的所有初始化,它正在制作的事件等等,因此我将它记录下来.但是,如果我只是记录这些日志,则日志记录将无法在没有在DOM中注册的控制台的浏览器中运行.我可以创建一个包装器对象:
MyNamespace.Console = {};
MyNamespace.Console.log = function(value) {
if (console!==undefined) {
console.log(value);
}
else {
// What should I do to log events on other browsers?
}
}
Run Code Online (Sandbox Code Playgroud)
以上使得IE/Opera上没有问题,但我如何用IE登录(一个真的需要用IE登录!).
另外,如果我在我的应用程序中随处可见日志,那么当它在生产环境中运行时,它会减慢我的速度吗?如果DEBUG === true,我是否应该在开启/关闭开关DEBUG并进行简单检查,然后记录?
像Closure Compiler这样的系统,你可以让它们删除日志记录吗?
如果在生产环境中运行时出现错误并且没有发生日志记录,如何调试/查找问题该怎么办?事实上,您是否曾向您(开发人员)发送JavaScript错误日志,以确保您的客户没有问题?这怎么办?
我很感激有关使用JavaScript调试/记录的任何反馈/意见,这是我第一次编写一个巨大的JavaScript应用程序,坦率地说,我不知道我该怎么做...调试和登录JavaScript似乎有点未完成.
我不建议将应用程序报告日志数据返回给开发人员,至少在不首先向用户/客户披露的情况下这样做。
按照 Anurag 的建议,最初将错误/事件/调试数据记录到阵列中,然后定期将日志数据发送到可以在本地存储和循环的 Web 服务器,这将是一种更安全的做法。然后,如果客户端遇到问题,他们可以自己提取日志进行调试,然后手动将其发送给您,或者明确告诉应用程序将日志传输给您(开发人员)。
无论如何,登录到控制台通常是在开发过程中使用的。并且应该使用调试标志,这样它就不会一直打开。
归档时间: |
|
查看次数: |
5187 次 |
最近记录: |