《PHP應用:PHP調試函數和日志記錄函數分享》要點:
本文介紹了PHP應用:PHP調試函數和日志記錄函數分享,希望對您有用。如果有疑問,可以聯系我們。
PHP教程網站程序開發過程經常需要調試,發布階段也需要記錄運行日志,方便發現問題和還原事件.這就要求有調試和日志記錄功能.
PHP教程下面分別寫了用于調試的函數和用于記錄錯誤的函數.
PHP教程使用辦法很簡單,且自動根據日期生成日志文件:
代碼如下:
//調試時,多個參數都可以:
sysdebug("hello");
sysdebug("hello", "tiger is coming now");
PHP教程//錯誤記錄也一樣:
syserror("error");
syserror("error", "unfortunately tiger is dead ", "we are sad");
PHP教程php調試和日志記錄函數,如下:
代碼如下:
/**
?* 記錄調試信息
?*/?
function sysdebug($msg) {?
? if (defined("DEBUG_MODE")) {?
??? //TODO 檢測調試開關,發布時不打印?
??? $params = func_get_args();?
??? $traces = debug_backtrace();?
??? $trace = array_pop($traces);?
??? sysrecord($params, $trace, 'debug');?
? }?
}?
?
/**
?* 記錄錯誤信息
?*/?
function syserror($msg) {?
? $params = func_get_args();?
? $traces = debug_backtrace();?
? $trace = array_pop($traces);?
? sysrecord($params, $trace, 'error');?
}?
?
/**
?* 寫文件
?* @ignore
?*/?
function sysfile($filename, $msg, $mode = null) {?
? $path = dirname($filename);?
? if (!file_exists($path)) {?
??? mkdir($path, 0666, true);?
? }?
? $flag = LOCK_EX;?
? if ($mode) {?
??? switch ($mode) {?
????? case "add":?
??????? $flag = FILE_APPEND | LOCK_EX;?
??????? break;?
????? case "a":?
??????? $flag = FILE_APPEND | LOCK_EX;?
??????? break;?
????? default:?
??????? break;?
??? }?
? }?
? file_put_contents($filename, $msg, $flag);?
}?
?
/**
?* 記錄信息
?* @ignore
?*/?
function sysrecord($params, $trace, $level) {?
? $path = dirname(__FILE__) . "/logs/";?
? //TODO 日志保留目錄最好修改一下?
???
? $file = $trace['file'];?
? $func = $trace['function'];?
? if ($func == "sys$level") {?
??? $func = '';?
? }?
? $filename = $path . "$level/" . date("Y-m-d") . '.log';?
? $msg = "[" . date("m-d H:i:s") . "] File:\"" . basename($file) . "\" Func:\"" . $func . "\" Msg:" . json_encode($params) . "\r\n";?
? sysfile($filename, $msg, 'add');?
}?
歡迎參與《PHP應用:PHP調試函數和日志記錄函數分享》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/12487.html