에러 표기 방식 변경.

- DB 에러도 throw exception을 수행
- exception handler 추가.
- error 발생시 콜 스택을 json 형태로 보관
This commit is contained in:
2018-04-12 21:24:28 +09:00
parent c87614ab2d
commit 4d2b10b979
3 changed files with 32 additions and 4 deletions
+28 -4
View File
@@ -7,6 +7,7 @@ mb_internal_encoding("UTF-8");
mb_http_output('UTF-8');
mb_regex_encoding('UTF-8');
function logErrorByCustomHandler(int $errno, string $errstr, string $errfile, int $errline, array $errcontext){
if (!(error_reporting() & $errno)) {
// This error code is not included in error_reporting, so let it fall
@@ -15,10 +16,33 @@ function logErrorByCustomHandler(int $errno, string $errstr, string $errfile, in
}
$date = date("Ymd_His");
$e = new \Exception();
file_put_contents(ROOT.'/d_log/err_log.txt',"$date, $errno, $errstr, $errfile, $errline\n", FILE_APPEND);
/* Don't execute PHP internal error handler */
//return true;
$data = Json::encode([
'date'=>$date,
'errno'=>$errno,
'errstr'=>$errstr,
'aux'=>'error',
'trace'=>$e->getTraceAsString()
], Json::PRETTY);
file_put_contents(ROOT.'/d_log/err_log.txt',"$data\n", FILE_APPEND);
}
set_error_handler("\sammo\logErrorByCustomHandler");
function logExceptionByCustomHandler(\Throwable $e){
$date = date("Ymd_His");
$data = Json::encode([
'date'=>$date,
'errno'=>$e->getCode(),
'errstr'=>$e->getMessage(),
'aux'=>'exception',
'trace'=>$e->getTraceAsString()
], Json::PRETTY);
file_put_contents(ROOT.'/d_log/err_log.txt',"$data\n", FILE_APPEND);
}
set_exception_handler('\\sammo\\logExceptionByCustomHandler');