>  기사  >  백엔드 개발  >  PHP 오류 log_php 팁을 얻는 방법에 대한 자세한 설명

PHP 오류 log_php 팁을 얻는 방법에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 20:10:37946검색

PHP에서 오류 로그를 얻는 방법은 여러 가지가 있습니다. 아래에서는 이러한 문제를 해결하는 방법에 대해 간략하게 소개하겠습니다.

<&#63;php
error_reporting (0);
register_shutdown_function($err = 'my_error_handler') OR set_error_handler($err,E_ALL); // 同时注册两个函数.
// 函数参数错误
$original = unserialize ( array(423142,2134234));
// 不可对0除
echo 1/0;
// 不存在的数组索引
echo $_GET['aa'];
// 不存在的常量
PHP_E;
// 不存在的变量
echo $var;
// 函数参数错误
strlen(array(2434));
// 函数参数错误
md5(array(1));
// 用户自定义错误
trigger_error('safdds',E_USER_NOTICE);
// 不存在的函数 php中断
// tes();
// 不存在的方法 php中断
$ts = new afsd();
function my_error_handler($errno=0 ,$errstr=0 , $errfile=0 ,$errline=0){
 if($errno && $errfile){
  if(true){
   $earr = array();
   $earr['type'] = $errno;
   $earr['message'] = $errstr;
   $earr['file'] = $errfile;
   $earr['line'] = $errline;
  }
 }else{
  $earr = error_get_last();
 }
 echo '<pre class="brush:php;toolbar:false">';
 print_r($earr);
 return array();
}

PHP 오류의 경우 유형, 오류 발생 시기, 반환 값이 무엇인지 명확하게 이해해야 합니다.

경고, 오류, 제안, 프롬프트 및 기타 세부 유형을 구분하지 않으면 PHP 오류 유형에는 두 가지 유형이 있다는 것을 이해할 수 있습니다.

하나는 강제 인터럽트 프로그램 오류입니다. 오류, 메소드가 존재하지 않습니다. 메모리 부족, 시간 초과

한 가지 유형은 경고와 같은 중단되지 않는 오류입니다.

인터럽트 프로그램 오류를 얻으려면 Register_shutdown_function 함수를 사용하고 메모리 함수를 등록한 다음 오류 정보를 얻어야 합니다. 예를 들어 존재하지 않는 오류 라인이 여러 개인 경우에만 이 방법을 사용할 수 있습니다. 기능을 사용하면 처음에만 해당 실수를 얻을 수 있습니다. 이는 실제로 장점이 있으며, 하나를 수정하면 다음 오류로 이동합니다.

비중단 오류의 경우,register_shutdown_function을 사용하면 작동이 매우 어려워집니다. 이때 오류 수준 상수를 터치할 때마다 set_error_handler가 필요합니다. 오류 함수는 한 번 호출됩니다. 내부에서 오류 로그를 가져올 수도 있습니다. 그러나 이 함수는 error_get_last 함수를 상속하므로 error_get_last가 매개변수에 의해 모두 전달되어 비어 있음을 알 수 있습니다.

두 가지 기능을 함께 사용하면 프로그램 오류의 99%를 얻을 수 있습니다. PHP 프로그램의 경우 이는 눈에 띄게 가벼운 것으로 간주될 수 있습니다.

위 예제를 실행해 보세요.

코드와 텍스트를 결합하여 PHP에서 오류 로그를 얻는 방법을 정리했습니다. 향후 작업에서 이러한 문제에 직면하는 모든 사람에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.