2013-10-31 3 views
0

PHP의 error_log() 기능의 기본 동작을 변경하여 소스 및 발신 라인 번호를 기본적으로 포함시킬 수 있는지 궁금합니다.PHP error_log 동작을 변경할 수 있습니까?

나는 이것이 잠재적으로 PHP ini 설정으로 수행 될 수 있거나 특정 방식으로 아파치를 구성함으로써 가능할 것이라고 추측하고 있습니다. 그러나 아파치 전문가가 아니기 때문에 어떻게 가능할 지 확신하지 못합니다.

내 기본 환경에서는 로그에서 오류의 원인을 찾는 것이 일반적으로 PHP 경고 또는 통지에 의해 오류가 합법적으로 생성되는 곳에서 문제를 일으키지 않습니다. 행이 어디서 발생했는지 자동으로보고하므로 ... 그러나, 프로그래머가 PHP error_log()를 호출하여 수동으로 호출하면이 작업이 수행되지 않으며이 동작을 기본값으로 설정할 수있는 방법을 찾을 수 없습니다.

내가 일반적으로이 같은 마법 상수 수동으로보고 선 달성 할 수 말하는 것을 알고있다 : 어떤 방법으로이 있는지에 대해 그러나

error_log("Failed to login to MySQL ".__LINE__);

, 나는 호기심과 제안을 열고 오전 아마도 로그에 보편적으로 오류가보고되는 방식을 구성하거나 마법 상수가 포함되도록 코드의 모든 단일 호출을 변경하려고합니다.

+0

[log4php] (https://logging.apache.org/log4php/)를 사용해보세요. – Raptor

+0

절대 시도하지 마십시오. 기존 코드를 변경하지 않으려면 error_log 함수에서 빌드를 재정의 할 수 있습니다. http://php.net/manual/de/function.override-function.php (어쩌면 error_get_last는 매개 변수로 자동으로 오류 메시지가 나타납니다). –

답변

1

set_error_handler 기능을 사용하여 자체 오류 처리기를 정의 할 수 있습니다. 이렇게하면 PHP 언어의 범위 (오류가 발생한 곳의 파일과 행을 인쇄하는 것을 포함하여)의 범위 내에서 원하는 오류를 처리 할 수 ​​있습니다. 이 경우 가장 일반적인 조치 과정은 오류를 ErrorException으로 변환하는 것입니다.

또한 xDebug과 같은 도구를 사용할 수 있습니다.이 도구는 php.ini에서 활성화하면 더 읽기 쉬운 형태로 오류를 표시합니다.

관련 문제