프로그래밍/PHP

php 에러 기록하기

kugancity 2021. 3. 3. 16:59
반응형

 

최근에 인수받은 웹서비스의 아파치 에러 로그 파일에 다음과 같은 메세지가 계속 찍히고 있었다. 

 

vi /opt/bitnami/apache2/logs/error_log

[Wed Mar 03 16:15:46.953224 2021] [proxy_fcgi:error] [pid 362] [client] AH01071: Got error 'PHP message: 5', referer: https://www.***from=diary-main
[Wed Mar 03 16:15:47.040806 2021] [proxy_fcgi:error] [pid 32] [client ] AH01071: Got error 'PHP message: 1PHP message: 5', referer: https://www.***from=diary-main
[Wed Mar 03 16:15:47.064788 2021] [proxy_fcgi:error] [pid 384] [client] AH01071: Got error 'PHP message: 5', referer: https://www.***from=diary-main
[Wed Mar 03 16:15:47.080871 2021] [proxy_fcgi:error] [pid 32] [client] AH01071: Got error 'PHP message: 5', referer: https://www.***from=diary-main

 

 

에러가 있을 때만 찍히는 것이 아니라 그냥 뜬끔없이 PHP message 1, 5만 찍히고 있음. 

 

초단위로 계속 찍히고 있어서 진짜 에러를 확인하기도 힘들어서 확인해보기로 함. 

 

grep -r "1" 또는 "5" 를 해보아도 딱히 잡히는 게 없어서 코드들을 열어보았다. 

코드의 맨 윗줄에 있는 error_log 확인해보니 아래와 같이 메시지가 있어야 하는 부분에 로그 레벨이 적혀있다. 

error_log(E_PARSE || E_ERROR);

error_log ( string $message , int $message_type = 0 , string $destination = ? , string $extra_headers = ? ) : bool 

참고로 에러 로그 함수의 문법은 위와 같다. 

 

 

PHP: error_log - Manual

when using error_log to send email, not all elements of an extra_headers string are handled the same way.  "From: " and "Reply-To: " header values will replace the default header values. "Subject: " header values won't: they are *added* to the mail header

www.php.net

메세지에 적혀있던 E_ERROR(1) 또는 E_PARSE(4) 값이 아파치 에러 로그에 찍히는 것으로 추정됨. 

아마 error_reporting 함수를 쓰려다가 잘 못 사용한 것이 아닌가 싶다.

일단 아래와 같이 수정 완료.  

error_reporting(E_ERROR | E_WARNING);

 

참고로 에러 타입으로 지정된 constants는 아래와 같다. 

 

www.php.net/manual/en/errorfunc.constants.php

 

PHP: Predefined Constants - Manual

My version!For long list function returns for example "E_ALL without E_DEPRECATED "function errorLevel(){    $levels = array(        'E_ERROR',        'E_WARNING',        'E_PARSE',        'E_NOTICE',        'E_CORE_ERROR',       

www.php.net

 

728x90
반응형