您的位置:首页 > 编程语言 > PHP开发

利用php的register_shutdown_function来记录php的输出日志

2016-09-07 16:00 435 查看
最近在做的一个项目..由于全是通过远程http请求来调用php的接口程序..

接收到的参数和返回的内容对开发人员来说都是未知不可见的..

虽然可以通过直接在脚本中模拟请求..但由于实际环境复杂的多..调试极其不方便.

于是想是否可以写一个函数用来记录对php接口调用的情况.

想到以前看到过的一个php函数register_shutdown_function..

该函数的作用是注册一个函数,当php脚本执行完成,或者代码中调用了exit ,die这样的代码之后,执行预先注册好的函数.

这样我们就可以在该函数中记录php调用执行的情况了.

简单写了下,看起来应该可以用了

<?php
function bdebug(){
$file="bdebug_log.txt";
if($_REQUEST){
foreach($_REQUEST as $k=>$v){
$request.=$k." = ".$v."\r\n";
}
}
foreach($_SERVER as $k=>$v){
$server.=$k." = ".$v."\r\n";
}
$content=date('Y-m-d H:i:s')." REQUEST信息: \r\n".$request."\r\nSERVER信息: \r\n".$server."\r\n";
ob_start();
function shutdown_func($file){
$content=date('Y-m-d H:i:s')." 输出的信息: \r\n".ob_get_contents()."\r\n";
file_put_contents($file,$content,FILE_APPEND);
}
register_shutdown_function('shutdown_func',dirname(__FILE__).DIRECTORY_SEPARATOR.$file);
file_put_contents($file,$content,FILE_APPEND);
}
?>


需要调用时 包含此文件执行bdebug() 即可.当php被调用时,会在该文件同目录下生成日志文件

用以记录调用的相关信息.

我这里只记录了 request ,server 以及php输出返回的信息.

具体可根据实际需要增减要记录的信息.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: