저는 1 년 넘게 저의 웹 사이트에서 일해 왔으며, 마침내 사람들이 사용할 수있게하기 위해 열심히 노력했습니다. 그러나 꽤 많이 커졌습니다. 저는 제 통제에서 거의 말하고 싶습니다. 그리고 그 위에 저는 아마추어 프로그래머에게 스스로 가르쳤습니다.PHP가 오류 로그 파일에 오류를 기록하는 방법을 변경하는 방법은 무엇입니까?
PHP가 생성하는 모든 오류가 파일에 기록되므로이 파일에 액세스하여 오류를 추적 할 수 있습니다.
<?php
error_reporting(E_ALL);
ini_set('display_errors', '0');
ini_set('log_errors', 1);
ini_set('error_log', 'errors.log');
?>
이 같은
작품 꽤 좋은 지금까지, 내하는 error.log 파일이 포함됩니다 물건 :
[14 월 2013 0시 16분
현재 내 설정은 다음과 같습니다 : 26] PHP 알림 : 정의되지 않은 변수 : 존재하지 않는 변수 /home/www/dir/index.php in 14 [14-May-2013 00:16:28] PHP 알림 : 정의되지 않은 변수 :/home/www/dir에 존재하지 않는 변수 /index.php on line 14
오류가 기록됩니다.
그들은 모두 한 줄, 아니 바꿈에 있습니다
는하지만 지금은 문제가 있습니다. 읽을 수 없게 만듭니다. 새 줄에서 각 오류를 얻으려면 어떻게해야합니까?
타임 스탬프가 있습니다. 굉장해! 사용자의 IP 주소 또는 다른 사용자 지정 사항을 추가하는 방법은 무엇입니까?
다시 말하지만, 내 질문 :
어떻게 PHP는 오류 로그 파일에 오류를 기록하는 방법을 변경하는 방법? 특히, 기록 된 각 오류 후에 새로운 행을 작성하여 error.log 파일을 읽기 쉽게하는 방법은 무엇입니까? IP 주소와 같은 맞춤 데이터 및 값을 추가하려면 어떻게해야합니까?
답변 : 나는 다음을 수행 결국 -이 다소 표준에 의해 수행되고, 거기에서 수정 될 수있는 PHP를 재현 할 것으로 보인다.
<?php
function my_error_handler($type, $message, $file, $line, $vars)
{
switch($type)
{
case 1: // 1 //
$type_str = 'ERROR';
break;
case 2: // 2 //
$type_str = 'WARNING';
break;
case 4: // 4 //
$type_str = 'PARSE';
break;
case 8: // 8 //
$type_str = 'NOTICE';
break;
case 16: // 16 //
$type_str = 'CORE_ERROR';
break;
case 32: // 32 //
$type_str = 'CORE_WARNING';
break;
case 64: // 64 //
$type_str = 'COMPILE_ERROR';
break;
case 128: // 128 //
$type_str = 'COMPILE_WARNING';
break;
case 256: // 256 //
$type_str = 'USER_ERROR';
break;
case 512: // 512 //
$type_str = 'USER_WARNING';
break;
case 1024: // 1024 //
$type_str = 'USER_NOTICE';
break;
case 2048: // 2048 //
$type_str = 'STRICT';
break;
case 4096: // 4096 //
$type_str = 'RECOVERABLE_ERROR';
break;
case 8192: // 8192 //
$type_str = 'DEPRECATED';
break;
case 16384: // 16384 //
$type_str = 'USER_DEPRECATED';
break;
}
$errormessage = '[ '.date(r).' ] '.$type_str.': '.$message.' in '.$file.' on line '.$line."\n";
// for development simply ECHO $errormessage;
$file = 'my_errors.log';
file_put_contents($file, $errormessage, FILE_APPEND);
}
error_reporting(E_ALL);
ini_set('display_errors', '0');
set_error_handler('my_error_handler');
?>
이것은 또한이 스레드에서 논의됩니다. http://stackoverflow.com/questions/30630484/is-it-possible-to-change-php-error-log-output – Salagir
이것은 http : // stackoverflow에서도 논의됩니다. .com/questions/30630484/is-it-possible-to-change-php-error-log-output – Salagir
이것은 또한 http : // stackoverflow에서 논의됩니다.com/questions/30630484/is-possible-to-change-php-error-log-output – Salagir