Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32193
  • 博文数量: 8
  • 博客积分: 326
  • 博客等级: 二等列兵
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-06 00:35
文章分类

全部博文(8)

文章存档

2012年(5)

2011年(2)

2007年(1)

我的朋友

分类: 系统运维

2012-07-16 09:47:31

工作中常常遇到一种情况,线上正在运行的系统出现非故障性问题(常常是数据方面),而在本地系统上却不容易找到问题的所在,这时就需要对线上系统进行代码级调试,往往的做法是暂时停掉线上系统使用,或者直接把调试信息赤裸裸的暴露给用户。刚刚发现了FirePHP这个好东西,可以将调试信息输出到http头信息上,这样就能在用户的眼皮底下进行调试又不会被发现。

 安装:
1、通过Firefox的组件搜索,依次安装:Firebug、FirePHP;
2、下载FirePHPCore

使用:
1、开启Firebug 控制台、脚本、网络,开启FirePHP,设置FirePHP的allowed sites
大小: 27.66 K
尺寸: 370 x 256
浏览: 124 次
点击打开新窗口浏览全图大小: 44.93 K
尺寸: 450 x 417
浏览: 134 次
点击打开新窗口浏览全图

2、FirePHPCore的lib包里有四个文件,可以根据php版本选择相应的文件来使用:

log
  1. /** 
  2.  * @Name      testfirephp.php 
  3.  * @Note      testfirephp 
  4.  * @Author    xinglu 
  5.  * 
  6.  */  
  7. require_once('FirePHPCore/fb.php');  
  8.   
  9. FB::log('HelloWorld!');  
  10. ?>  

输出:
大小: 17.6 K
尺寸: 388 x 110
浏览: 109 次
点击打开新窗口浏览全图

3、FirePHPCore内置了多种输出格式和方法:

分组
  1. /** 
  2.  * @Name      testfirephp.php 
  3.  * @Note      testfirephp 
  4.  * @Author    xinglu 
  5.  * 
  6.  */  
  7. require_once('FirePHPCore/fb.php');  
  8.   
  9. FB::group('Test Group A'); // 记录分组  
  10. //以下为按照不同类别或者类型进行信息记录  
  11. FB::log('Plain Message');  
  12. FB::info('Info Message');  
  13. FB::warn('Warn Message');  
  14. FB::error('Error Message');  
  15.   
  16. FB::log('Message','Optional Label');  
  17. FB::groupEnd();  
  18. FB::group('Test Group B');  
  19. FB::log('Hello World B');  
  20. FB::log('Plain Message');  
  21. FB::info('Info Message');  
  22. FB::warn('Warn Message');  
  23. FB::error('Error Message');  
  24.   
  25. FB::log('Message','Optional Label');  
  26. FB::groupEnd();  
  27. ?>  

输出: 
大小: 68.02 K
尺寸: 500 x 305
浏览: 122 次
点击打开新窗口浏览全图

table
  1. /** 
  2.  * @Name      testfirephp.php 
  3.  * @Note      testfirephp 
  4.  * @Author    xinglu 
  5.  * 
  6.  */  
  7. require_once('FirePHPCore/fb.php');  
  8.   
  9. // 将信息作为table输出  
  10. $table[] = array('Col 1 Heading','Col 2 Heading','Col 2 Heading');  
  11. $table[] = array('Row 1 Col 1','Row 1 Col 2','Row 1 Col 2');  
  12. $table[] = array('Row 2 Col 1','Row 2 Col 2');  
  13. $table[] = array('Row 3 Col 1','Row 3 Col 2');  
  14.   
  15. FB::table('Table Label'$table);  
  16. ?>  

输出: 大小: 40.98 K
尺寸: 500 x 206
浏览: 113 次
点击打开新窗口浏览全图

 

异常处理
  1. /** 
  2.  * @Name      testfirephp.php 
  3.  * @Note      testfirephp 
  4.  * @Author    xinglu 
  5.  * 
  6.  */  
  7. require_once('FirePHPCore/fb.php');  
  8.   
  9. // 在异常处理中使用FirePHP  
  10. class MyException extends Exception{  
  11.   public function  __construct($message$code) {  
  12.       parent::__construct($message$code);  
  13.   }  
  14.   public function log(){  
  15.       FB::log($this->getMessage());  
  16.   }  
  17. }  
  18.   
  19. try{  
  20.   echo 'MoXie';  
  21.   throw new MyException('some description',1);  
  22. }catch(MyException $e){  
  23.   $e->log();  
  24. }  
  25. ?>  

4、与CodeIgniter结合使用:
a、将FirePHP.class.php、fb.php移动至system/application/libraries
b、重命名:FirePHP.class.php=>Firephp.php,fb.php=>Fb.php
c、编辑这两个文件的第一行,改为:d、注释掉fb.php的第45行://require_once dirname(__FILE__).'/FirePHP.class.php';
e、编辑(或增加)config/autoload.php :$autoload['libraries'] = array("firephp", "fb");
完成!
使用:

PHP代码
  1. function index()  
  2. {  
  3.     $arr = array('1','2','3','4');  
  4.     $this->fb->group('Test Group 1');  
  5.     $this->fb->log($arr);  
  6.     $this->fb->error('false1111');  
  7.     $this->fb->groupEnd();  
  8.     $this->fb->group('Test Group 2');  
  9.     $this->fb->log($arr);  
  10.     $this->fb->error('false222');  
  11.     $this->fb->groupEnd();  
  12.   
  13.     echo '

    this is a test module page!

    '
    ;  
  14.     exit;  
输出:
大小: 96.36 K
尺寸: 500 x 326
浏览: 108 次
点击打开新窗口浏览全图

 

阅读(904) | 评论(0) | 转发(0) |
0

上一篇:_vimrc、plugin及常用操作整理备忘

下一篇:没有了

给主人留下些什么吧!~~