【记录错误(生产环境)】
php.ini:
① 开启 / 关闭 错误日志功能
log_errors = On
② 设置 log_errors 的最大字节数
log_errors_max_len = 1024
其他:
选项 | 描述 |
log_errors | 设置是否将错误信息记录到日志或者 error_log 中 |
error_log | 设置脚本错误将记录到的文件 |
log_errors_max_len | 设置 log_errors 的最大字节数 |
ignore_repeated_errors | 是否忽略重复的错误信息 |
ignore_repeated_source | 是否忽略重复错误消息的来源 |
track_errors | 如果开启此选项,最后一个错误将永久保存在$php_errormsg 中 |
【方法一】将错误记录到指定的文件中
① 开启 php.ini 中的 log_errors
② 指定 错误日志的保存路径,例如:
error_log = "d:/wamp/logs/php_error.log"
【例1】
页面不会有任何输出。打开 D:\wamp\logs\php_error.log:
[19-May-2015 15:59:48 UTC] PHP Notice: Undefined variable: test in D:\practise\php\Error\error1.php on line 9[19-May-2015 15:59:48 UTC] PHP Stack trace:[19-May-2015 15:59:48 UTC] PHP 1. {main}() D:\practise\php\Error\error1.php:0[19-May-2015 15:59:48 UTC] PHP Warning: settype() [function.settype]: Invalid type in D:\practise\php\Error\error1.php on line 11[19-May-2015 15:59:48 UTC] PHP Stack trace:[19-May-2015 15:59:48 UTC] PHP 1. {main}() D:\practise\php\Error\error1.php:0[19-May-2015 15:59:48 UTC] PHP 2. settype() D:\practise\php\Error\error1.php:11[19-May-2015 15:59:48 UTC] PHP Fatal error: Call to undefined function test() in D:\practise\php\Error\error1.php on line 13[19-May-2015 15:59:48 UTC] PHP Stack trace:[19-May-2015 15:59:48 UTC] PHP 1. {main}() D:\practise\php\Error\error1.php:0
【例2】在 ini_set() 中设置保存错误日志的路径。
页面不会有任何输出。打开 D:\wamp\logs\php_error_2.log:
[19-May-2015 16:04:41 UTC] PHP Notice: Undefined variable: test in D:\practise\php\Error\error1.php on line 11[19-May-2015 16:04:41 UTC] PHP Stack trace:[19-May-2015 16:04:41 UTC] PHP 1. {main}() D:\practise\php\Error\error1.php:0[19-May-2015 16:04:41 UTC] PHP Warning: settype() [function.settype]: Invalid type in D:\practise\php\Error\error1.php on line 13[19-May-2015 16:04:41 UTC] PHP Stack trace:[19-May-2015 16:04:41 UTC] PHP 1. {main}() D:\practise\php\Error\error1.php:0[19-May-2015 16:04:41 UTC] PHP 2. settype() D:\practise\php\Error\error1.php:13[19-May-2015 16:04:41 UTC] PHP Fatal error: Call to undefined function test() in D:\practise\php\Error\error1.php on line 15[19-May-2015 16:04:41 UTC] PHP Stack trace:[19-May-2015 16:04:41 UTC] PHP 1. {main}() D:\practise\php\Error\error1.php:0
【例3】记录什么时候用户尝试以什么密码来登录系统的时间和 ip 地址(例如通过日志分析注水机器人)
login.html
TODO supply a title 登录
doAction.php:
打开:D:\wamp\logs\login.log:
[19-May-2015 16:25:59 UTC] 用户dee在2015-05-20 00:25:59以dee尝试登录系统,当前用户的ip地址为127.0.0.1
【方法二】将错误记录到系统日志中
【方法三】将错误以邮件形式发送