PHP从记录事件中获取行号
发布时间:2020-12-13 22:41:03 所属栏目:PHP教程 来源:网络整理
导读:好的,我的Logging Class还有另一个问题 HERE,但我希望能够将调用脚本的行号添加到日志文件条目中. 我见过__Line__但是这给了我这行所在行的行号. 例: a.php只会 $log = new Logger();$log-debug('hello'); // Say this is line #20 现在在debug()的Logger.p
好的,我的Logging Class还有另一个问题
HERE,但我希望能够将调用脚本的行号添加到日志文件条目中.
我见过__Line__但是这给了我这行所在行的行号. 例: a.php只会 $log = new Logger(); $log->debug('hello'); // Say this is line #20 现在在debug()的Logger.php类中,我使用了__Line__ Magic Constant,例如第300行.当我运行脚本时,我希望日志条目读取’在第20行’,但它在’第300行’上读取.除了将行号传递给函数之外还有其他方法可以做到这一点吗? 示例调试类函数 public function debug($message) { if(DEBUG) { $this->calling_script = $this->getScriptBaseName(); $this->log_file = LOG_FILE_DIRECTORY."/".$this->calling_script.".log"; $this->fh = fopen($this->log_file,'a') or die("Can't open log file: ".$this->log_file); if($this->first_run) { $this->log_entry = "n[" . date("Y-m-d H:i:s",mktime()) . "][debug][line:".__LINE__."]:t".$message."n"; } else { $this->log_entry = "[" . date("Y-m-d H:i:s",mktime()) . "][debug][line:".__LINE__."]:t".$message."n"; } fwrite($this->fh,$this->log_entry); fclose($this->fh); $this->first_run = false; } } 编辑:debug_backtrace()工作得很好!!!在下面工作 public function debug($message) { if(DEBUG) { $debug_arr = debug_backtrace(); $this->calling_script = $this->getScriptBaseName(); $this->log_file = LOG_FILE_DIRECTORY."/".$this->calling_script.".log"; $this->fh = fopen($this->log_file,mktime()) . "][debug]:t".$message." [line:".$debug_arr[0]['line']."]n"; } else { $this->log_entry = "[" . date("Y-m-d H:i:s",mktime()) . "][debug]:t".$message." [line:".$debug_arr[0]['line']."]n"; } fwrite($this->fh,$this->log_entry); fclose($this->fh); $this->first_run = false; } }
您必须为此使用
debug_backtrace ,否则始终将该行(使用__LINE__)传递给该函数.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读