두 가지 이유가 있다고 생각합니다.
1. 팀에서 관리하기 쉽도록 통일된 로그 형식이 필요합니다
2. 쓸데없는 오류 로그가 많아 하드 디스크 공간을 차지합니다. 의미 있는 로그만 기록하면 됩니다.
그럼 연습해 보세요.
1. php.ini를 엽니다
2. 로깅을 켜고
log_errors = Off
을
log_errors = On
으로 변경합니다. 3. Save php를 변경합니다. .ini, 웹 서버 종료 후 다시 시작
4. 코드 앞에 다음 코드를 추가합니다
<?php //错误处理函数 function myErrorHandler($errno, $errstr, $errfile, $errline) { $log_file = "./php_%s_log_".date("Ymd").".log";//定义日志文件存放目录和文件名 $template = ''; switch ($errno) { case E_USER_ERROR: $template .= "用户ERROR级错误,必须修复 错误编号[$errno] $errstr "; $template .= "错误位置 文件$errfile,第 $errline 行\n"; $log_file = sprintf($log_file,'error'); exit(1);//系统退出 break; case E_USER_WARNING: $template .= "用户WARNING级错误,建议修复 错误编号[$errno] $errstr "; $template .= "错误位置 文件$errfile,第 $errline 行\n"; $log_file = sprintf($log_file,'warning'); break; case E_USER_NOTICE: $template .= "用户NOTICE级错误,不影响系统,可不修复 错误编号[$errno] $errstr "; $template .= "错误位置 文件$errfile,第 $errline 行\n"; $log_file = sprintf($log_file,'notice'); break; default: $template .= "未知错误类型: 错误编号[$errno] $errstr "; $template .= "错误位置 文件$errfile,第 $errline 行\n"; $log_file = sprintf($log_file,'unknown'); break; } file_put_contents($log_file,$template,FILE_APPEND); return true; } $error_handler = set_error_handler("myErrorHandler");//开启自定义错误日志
5. 지금 바로 코드 뒤에 오류 코드를 작성해 보세요. 🎜>
echo 1/0;정의한 경로 아래에 추가 로그 파일이 있는지 확인하시나요? :)참고: 다음 수준의 오류는 사용자 정의 함수로 처리할 수 없습니다: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING 및 set_error_handler() 함수가 있는 파일에서 생성된 대부분의 E_STRICT 라고 불리는. . 그러나 오류 로깅 시스템을 활성화하고(php.ini에서 log_error = on) 시스템 로그 파일을 지정하고(php.ini에서 error_log=path 이름도 지정) error_reporting을 모두 활성화하면 위의 내용이 나타납니다. 오류는 시스템 오류 로그로 정의한 파일에 기록됩니다. 위 내용은 이 글에 설명된 내용의 전부입니다. PHP 사용자 정의 오류 로그에 대해 모두가 새로운 이해를 가질 수 있기를 바랍니다. PHP 사용자 정의 오류 로그에 대한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!