PHP脚本中临时指定错误日志文件
需要一个主配置文件config.php <?php ini_set("error_reprorting", "E_ALL"); ini_set("display_errors", "Off"); ini_set("log_errors", "On"); ini_set("error_log", "/opt/lampp/htdocs/error_log.log"); //此路径自行配置 查看日志文件error_log.php <?php require_once("config.php"); set_time_limit(0); header("Content-type:text/html;charset=utf-8"); if($_SERVER['REMOTE_ADDR'] != '127.0.0.1') { //对除开发人员ip地址外的其他地址屏蔽可查看本日志 header('HTTP 1.1/404'); } $line = 40; if(function_exists('ini_get')) { $error_log = ini_get('error_log'); } else { $error_log = "/var/www/log/php_error.log"; } $starttime = time(); readlog($error_log, $line, $starttime); function readlog($file, $linefromlast, $starttime){ $i = 0; $line = 0; $fp = @fopen($file, "r"); while(stream_get_line($fp, 8192, "n")) { $line++; } fseek($fp, 0); //指针置0 if($fp) { while(!feof($fp)) { $i++; $buffer = fgets($fp, 8192); if($i <= ($line - $linefromlast)) { continue; } echo $buffer . "<br />"; } fclose($fp); } $endtime = time(); $havetime = $endtime - $starttime; echo "在" . $line . "条记录中找出最后" . $linefromlast . "条记录耗时" . $havetime . "秒"; } ?>
调试php的时候php.ini 错误日志设置部分
对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将php.ini中display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。
某个产品投入使用后,难免会有错误信息,那么如何记录这些对开发人员非常有用的信息呢?
将PHP的log_errors开启即可,默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。
当然也可以记录错误日志到指定的文件中。
# vim /etc/php.inidisplay_errors = Off
log_errors = On
error_log =
/var/log/php-error.log //此处填文件目录
另外也可以设定error_log = syslog,使这些错误信息记录到操作系统的日志里。
;具体参考php.ini的参考
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL
display_errors = On
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
report_memleaks = On
track_errors = On
;注意错误不要记录到文件,不然运行的时候会看不到错误,难以调试
;error_log = c:\php_error.log
;error_log = syslog