查看PHP错误日志

想查看PHP错误日志,首先需要对php.ini进行配置,在php.ini中设置log_errors和error_log两项。

log_errors:设置为On,表示将脚本运行的错误信息记录到日志中。

error_log:用于设置错误日志的路径。

注:服务器端配置时,还需要设置error_reporting和display_errors两项;

error_reporting应该设置为E_ALL,表示记录所有错误信息

display_errors应该设置为Off,表示不向屏幕输出错误信息

下面是从错误日志中读取信息的代码:

<?php

	/**
	* 从错误日志中读取信息
	*/
	class ErrorLog 
	{
		// 获取错误日志的最后$linefromlast行
		public function getErrorLog($linefromlast){
			set_time_limit(0);
			header("Content-Type:text/html;charset=utf-8");
			//设置为只有本服务器才能查看错误日志,可自行选择配置
			if($_SERVER["REMOTE_ADDR"]!="127.0.0.1")
				header("HTTP/1.1 404 NOT FOUND");
			//日志文件路径
			if(function_exists("ini_get")){
				$file = ini_get("error_log");
			}else{
				$file = "D:\wamp\php_errors.log";
			}

			$starttime = time();
			$this->readLog($file,$linefromlast,$starttime);
			
		}
		//从错误日志文件中读取最后$linefromlast行
		private function readLog($file,$linefromlast,$starttime){
		
			$fp = @fopen($file, "r");			
			$line = 0 ;
			//统计总共多少行数据
			while (stream_get_line($fp, 8192,"\n")) {
				$line++;
			}
			// 将文件指针归零
			fseek($fp, 0);
			$i = 0 ;//计数
			while (!feof($fp)) {
				$i++;
				$buffer = fgets($fp,8192);//读取一行
				//还未到最后$linefromlast行时,跳过输出
				if($i <=$line-$linefromlast)
					continue;
				echo $buffer . "<br>";
			}
			fclose($fp);
			$endtime = time();
			$time =  $endtime - $starttime;
			echo "from $line line read the last $linefromlast line take time : $time second <br/>";
		}
	}

结果如下图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值