利用php的register_shutdown_function来记录php的输出日志
2016-09-07 16:00
435 查看
最近在做的一个项目..由于全是通过远程http请求来调用php的接口程序..
接收到的参数和返回的内容对开发人员来说都是未知不可见的..
虽然可以通过直接在脚本中模拟请求..但由于实际环境复杂的多..调试极其不方便.
于是想是否可以写一个函数用来记录对php接口调用的情况.
想到以前看到过的一个php函数register_shutdown_function..
该函数的作用是注册一个函数,当php脚本执行完成,或者代码中调用了exit ,die这样的代码之后,执行预先注册好的函数.
这样我们就可以在该函数中记录php调用执行的情况了.
简单写了下,看起来应该可以用了
需要调用时 包含此文件执行bdebug() 即可.当php被调用时,会在该文件同目录下生成日志文件
用以记录调用的相关信息.
我这里只记录了 request ,server 以及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输出返回的信息.
具体可根据实际需要增减要记录的信息.
相关文章推荐
- php的$_FILES的临时储存文件与回收机制实测过程
- PHP的类和对象(一)
- PHP的函数
- 【PHP】通过键进行降序排序,然后通过键值对字符串连接,最后md5加密算法
- php中的date()函数d y m l等字母的表示方法
- PHP SQL注入
- ContentProvider(内容提供者)以及自定义ContentProvider
- 我整理的PHP 7.0主要新特性
- Ubuntu 安装phpmyadmin 和配置
- PHP基础知识 - 字符串处理函数
- PHP 基础知识-数组
- 编写个函数来对⼆维数组排序
- PHP中使用localhost连接Mysql不成功的解决方法 【转】
- php mysqli扩展库的使用
- **PHP中替换换行符
- 如何在laravel中使用post方法的ajax请求
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- php中set_time_limit()函数运用
- PHP中Push(推送)技术的探讨
- PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重