什么调试日志工具可以从Javascript获得?

我想创建一个“通用”调试日志记录功能,用于检查JS命名空间的知名日志库.

例如,目前它支持Firebug的console.log:

var console = window['console'];
if (console && console.log) {
  console.log(message);
}

显然,这只有在Firebug安装/启用时才可以在Firefox中使用(也可以在其他浏览器上使用Firebug Lite).基本上,我将提供一个JS库,我不知道什么环境将被拉入,我想知道是否有办法向用户报告调试输出.

所以,也许jQuery提供了一些东西 – 我会检查jQuery是否存在并使用它.或者也许有一些知名的IE插件,我可以嗅探的工作.但它必须是一个相当确定和使用的机制.我无法检查人们创建的每个模糊的日志功能.

请每个答案只有一个图书馆/技术,所以他们可以获得投票排名.此外,使用alert()是一个很好的短期解决方案,但是如果您想要强大的调试日志记录或者阻止执行是一个问题,则会中断.

解决方法

我个人使用Firebug / Firebug Lite,并在IE上让Visual Studio进行调试.当访问者使用一些疯狂的浏览器时,这些都不会有任何好处.您真的需要让您的客户端javascript将其错误记录到您的服务器.看看下面链接的power point演示文稿.它有一些非常整洁的想法,如何让你的javascript来记录你的服务器上的东西.

基本上,你挂起window.onerror和你的try {} catch(){}阻止一个函数,使一个请求返回到您的服务器与有用的调试信息.

我刚刚在自己的Web应用程序上实现了这样一个过程.我有每一个catch(){}块调用一个函数发送一个JSON编码的消息回到服务器,这反过来使用我现有的日志基础设施(在我的情况下log4perl).我链接的演示文稿还建议在您的JavaScript中加载图像,将错误作为GET请求的一部分.唯一的问题是如果你想包括堆栈跟踪(哪个IE根本不为你生成),请求将会太大.

Tracking ClientSide Errors,by Eric Pascarello

PS:我想补充说,我不认为使用任何类似jQuery的“hardcore”日志记录是一个好主意,因为您正在记录的错误原因是jQuery或Firebug Lite!也许错误是浏览器(咳嗽IE6)做了一些疯狂的加载顺序,并且抛出某种Null参考错误,因为它太愚蠢加载库正确.

在我的例子中,我确保我所有的JavaScript日志代码都位于< head>而不是作为.js文件拉入.这样,我可以肯定的是,无论浏览器抛出什么样的曲线球,赔率都很好,我可以登录.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)