PHP
来源:互联网 发布:淘宝客推广技术 编辑:程序博客网 时间:2024/06/06 13:13
快速定位BUG是程序员工作最头疼的问题 没有之一 尤其是当程序已经在online环境以后 So 听我说 其实定位问题也没有那么的难
- log方法
你要保证日志的文件权限拥有权限和在一个安全的位置 PHP脚本放置的 Nginx 或 Apache的应用文件夹中 然后你可以自定义一下 error.log的位置 这个你可以在配置文件中指定
需要将php.ini中的配置指令做如下修改:
-
error_reporting = E_ALL ;将会向PHP报告发生的每个错误
display_errors = Off ;不显示满足上条 指令所定义规则的所有错误报告
log_errors = On ;决定日志语句记录的位置
log_errors_max_len = 1024 ;设置每个日志项的最大长度
error_log = E:/php_log/php_error.log ;指定产生的 错误报告写入的日志文件位置
<?php ## error_log 函数 if(!Ora_Logon($username, $password)){ error_log("将错误消息写入到操作系统日志中", 0); //将错误消息写入到操作系统日志中 } if(!($foo=allocate_new_foo()){ error_log("发送到管理员邮箱中", 1, ". mydomain.com"); //发送到管理员邮箱中 } error_log("发送到本机对应5000端口的服务器中", 2, "localhost:5000"); //发送到本机对应5000端口的服务器中 error_log("发送到指定的文件中", 3, "/usr/local/errors.log"); //发送到指定的文件中 ?>
2.安装Debug插件
xdebug.auto_trace = On ;用于设定在脚本运行前是否自动跟踪方法的调用信息。xdebug.show_exception_trace = On xdebug.remote_autostart = On ;通常需要使用一个特定的HTTP GET / POST变量开始远程调试(参见远程调试)。这个设置设置为1时,Xdebug将始终尝试远程调试会话开始,尝试连接到一个客户,即使GET / POST / COOKIE变量并不需要。 xdebug.remote_enable = On ;这个开关控制Xdebug是否应该联系一个调试客户端监听的主机和端口的设置xdebug.remote_host = 127.0.0.1 ; 选择主机的调试客户端运行时,可以使用主机名或IP地址。xdebug.remote_port = 9000 xdebug.remote_handler = dbgp ;可以是“php3”选择旧的PHP 3样式调试器输出,’ gdb ‘使gdb调试器接口或“dbgp”——调试器协议。DBGp协议是唯一支持的协议。 **注意:**Xdebug 2.1及以后版本只支持“dbgp”协议。 xdebug.profiler_enable = on ;创建配置文件中的文件输出目录。这些文件可以被KCacheGrind看到您的数据可视化。
xdebug工具有很多设置的参数 是一款很方便快捷 跟踪脚本定位问题的超级好用的工具
3.自定义错误异常处理(try…catch Exception)
<?phpfunction inverse($x) { if (!$x) { throw new Exception('Division by zero.'); } return 1/$x;}try { echo inverse(5) . "\n"; echo inverse(0) . "\n";} catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n";}// Continue executionecho "Hello World\n";?>
未完…待续
0 0
- PHP
- PHP
- php
- php
- PHP
- PHP
- php
- php
- php
- PHP
- php
- php
- php
- PHP
- PHP
- php
- php
- PHP
- Eclipse如何自动提示:点加全字母激活提示
- 利用ajax从jsp中返回的字符串时出现回车符号解决办法
- 索尼PS4破解之用户层代码执行(Part2)
- Maven Jar 源码下载
- 九度OJ-1198-a+b--高精度整数
- PHP
- C#7.0之ref locals and returns (局部变量和引用返回,之前欠大家的,现在补上)
- PreparedStatement和Statement比较
- 拉格朗日插值法(代码实现及部分证明)
- jzoj P1508【普及模拟】蚂蚁
- Linux块设备方式的nvram驱动实例
- Oracle实现字段自动增长
- 一卡通行业产业链分析
- 深入分析java线程池的实现原理