浏览 1891 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-10-29
实际上,FirePHP并不是PHP专用的,任何语言都能使用。只要在firefox浏览器上安装firebug & firephp Extension 扩展后即可。如果是PHP语言,只需再下载一个FirePHPCore放到服务器端,在PHP代码里加几句代码即可,很简单的。如果是其他语言想使用呢?很简单,只需要在header里输出一个特殊的头,激活客户端的firephp Extension即可。firePHP的响应头如下所示,以X-Wf开头,前三个是固定的,用来通知浏览器,第四个则是用来输出数据的,JSON格式,很好理解。 X-Wf-Protocol-1 http://meta.wildfirehq.org/Protocol/JsonStream/0.2 X-Wf-1-Plugin-1 http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3 X-Wf-1-Structure-1 http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1 X-Wf-1-1-1-1 62|[{"Type":"LOG","File":" ... Test.php","Line":3},"Hello World"]| 第四行标记头的那串数字是用来排序的,后面的内容是按如下格式组织的: <size> | [ <meta> , <body> ] | 意义一看就明白。Type属于meta的一部分,可能的取值有 LOG ,INFO,WARN, ERROR,EXCEPTION,TABLE等等。更详细的可以看文档:[url]http://www.firephp.org/Wiki/Reference/Protocol [/url],这里把所有的都说的清清楚楚了。 回到正题,那其它语言要实现怎么办呢?很简单啊,输出header,用JSON啊。比如以Java为例,我们可以: public class FirelogServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //输出header,输出调试数据,以下代码只贴出核心部分 response.setHeader("X-Wf-Protocol-1", "http://meta.wildfirehq.org/Protocol/JsonStream/0.2"); response.setHeader("X-Wf-1-Plugin-1", "http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3"); response.setHeader("X-Wf-1-Structure-1", "http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1"); StringBuffer msgBuffer = new StringBuffer(); msgBuffer.append("[{\"Type\":\""); msgBuffer.append(type); msgBuffer.append("\"},"); msgBuffer.append(Json.encode(obj)); msgBuffer.append(']'); response.setHeader("X-Wf-1-1-1-" + i, String.format("%d|%s|", msgBuffer.length(),msgBuffer.toString())); // TODO write HTML to out } } 不过就是简单的包装了下Servlet而已,只需在上面的代码基础上稍作修改即可。不过有了log4j,貌似用这个的需求不是很多。但我还是觉得这东西开发Ajax时会有点帮助的。另外,FirePHP官方也贴出了Java实现的链接,不过感觉没必要单独下个Jar包,自己写代码也不过200行代码即可完美搞定。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |