当前位置:首页 > PHP教程 > php函数 > 列表

PHP调试函数和日志记录函数分享

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-09 15:42:36 浏览: 评论:0 

这篇文章主要介绍了PHP调试函数和日志记录函数分享,本文分享的函数都是自己项目中使用的,需要的朋友可以参考下

网站程序开发过程经常需要调试,发布阶段也需要记录运行日志,方便发现问题和还原事件。这就要求有调试和日志记录功能。

下面分别写了用于调试的函数和用于记录错误的函数。

使用方法很简单,且自动根据日期生成日志文件:

  1. //调试时,多个参数都可以: 
  2. sysdebug("hello"); 
  3. sysdebug("hello""tiger is coming now"); 
  4. //错误记录也一样: 
  5. syserror("error"); 
  6. syserror("error""unfortunately tiger is dead ""we are sad"); 

php调试和日志记录函数,如下:

  1. /** 
  2.  * 记录调试信息 
  3.  */  
  4. function sysdebug($msg) {  
  5.   if (defined("DEBUG_MODE")) {  
  6.     //TODO 检测调试开关,发布时不打印  
  7.     $params = func_get_args();  
  8.     $traces = debug_backtrace();  
  9.     $trace = array_pop($traces);  
  10.     sysrecord($params$trace'debug');  
  11.   }  
  12. }  
  13.  
  14. /** 
  15.  * 记录错误信息 
  16.  */  
  17. function syserror($msg) {  
  18.   $params = func_get_args();  
  19.   $traces = debug_backtrace();  
  20.   $trace = array_pop($traces);  
  21.   sysrecord($params$trace'error');  
  22. }  
  23.  
  24. /** 
  25.  * 写文件 
  26.  * @ignore 
  27.  */  
  28. function sysfile($filename$msg$mode = null) {  
  29.   $path = dirname($filename);  
  30.   if (!file_exists($path)) {  
  31.     mkdir($path, 0666, true);  
  32.   }  
  33.   $flag = LOCK_EX;  
  34.   if ($mode) {  
  35.     switch ($mode) {  
  36.       case "add":  
  37.         $flag = FILE_APPEND | LOCK_EX;  
  38.         break;  
  39.       case "a":  
  40.         $flag = FILE_APPEND | LOCK_EX;  
  41.         break;  
  42.       default:  
  43.         break;  
  44.     }  
  45.   }  
  46.   file_put_contents($filename$msg$flag);  
  47. }  
  48.  
  49. /** 
  50.  * 记录信息 
  51.  * @ignore 
  52.  */  
  53. function sysrecord($params$trace$level) {  
  54.   $path = dirname(__FILE__) . "/logs/";  
  55.   //TODO 日志保存目录最好修改一下  
  56.     
  57.   $file = $trace['file'];  
  58.   $func = $trace['function'];  
  59.   if ($func == "sys$level") {  
  60.     $func = '';  
  61.   }  
  62.   $filename = $path . "$level/" . date("Y-m-d") . '.log';  
  63.   $msg = "[" . date("m-d H:i:s") . "] File:\"" . basename($file) . "\" Func:\"" . $func . "\" Msg:" . json_encode($params) . "\r\n";  
  64.   sysfile($filename$msg'add');  
  65. }

Tags: PHP调试函数 PHP日志记录函数

分享到: