HTML 출력없이 리소스에서 데이터를 다운로드하기 위해 매일 서버에서 실행되는 스크립트가 있습니다. 기본적으로 PHP는 내 스크립트 오류를 php_error.log
과 NetBeans의 출력 창에 출력합니다. 나는 사용자 오류 핸들러를 만든출력 할 PHP 사용자 정의 오류 처리기 로그
는 :
// user defined error handling function
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
error_log($errmsg, 3, "logs/aem.log");
switch ($errno) {
case E_ERROR:
exit("Error grave $errmsg at $filename:$linenum");
break;
case E_USER_ERROR:
exit("Error grave $errmsg at $filename:$linenum");
break;
}
}
error_reporting(0);
set_error_handler('userErrorHandler');
내 주요 스크립트에서이 파일을 포함하고 다 잘 간다.
내가 응용 프로그램을 개발하는 동안 Netbeans의 출력 화면에서 오류 메시지를 보면서 (기본 처리기와 마찬가지로) 오류 로그 파일을 보관하고 싶습니다. 나는 error_reporting
의 값을 변경하거나 다음 값을 시도하는 추가의 error_log 기능을 추가하는 시도 :
error_reporting(E_ALL | E_STRICT);
error_reporting(-1);
error_log($errmsg, 0);`
을하지만 파일에서 include('mycustomhandler');
을 제거하지 않는 I 출력에 오류가 발생하지 않습니다.
표준 오류 처리기의 동작을 에뮬레이트 할 수 있습니까?
멋진 아이디어를 요구하고 있었는지 명중하지 않은 경우
댓글에 질문 : 같은 당신의 오류 처리기가 보일 것입니다. 커스텀 핸들러를 사용하는 주된 아이디어는 앱에 특정한 파일에 로그 할 수 있기 때문에 syslog를 사용하지 않을 것입니다. 'fprintf()'도 Netbeans 출력으로 출력하므로 핸들러에 추가 할 수 있습니다. –
@DavidCasillas 그래서 netbeans는 STDERR의 출력을 구문 분석합니다. 그리고 그것들은 단지 아이디어 였고, 나는 적어도 도움이되기를 바랍니다 :). – Vyktor