2012-01-07 4 views
0

나는 error_log를 많이 호출하는 대기업 규모의 PHP 애플리케이션을 보유하고 있습니다.PHP 로깅, 오류 로그 및 사용자 정의

때때로 예외가 발생하면 서버에 문제가 발생하여 디스크에 오류 로그가 가득 차 있다고 생각합니다.

PHP에서 로깅 유틸리티를 더 잘 활용하려면 어떻게해야합니까? 특히 나는 php의 error_log 기능을 관리하고 실제 세계에서 사용하는 방법에 대해 많이 모른다.

다른 로깅 메커니즘이 더 적절합니까? info_log 나 로그 만료 유틸리티가 로그 파일을 너무 많이 삭제하면/삭제할 수 있습니까? 마지막으로 여러 개의 로그 파일을 만들 수 있습니까?

+2

가장 좋은 방법은 PHP에서 문제를 해결하는 것입니다? – ZeroSuf3r

+0

아니요 - 모든 문제가 해결되었는지 확인할 방법이 없기 때문입니다. 우선 순위가 낮고 반복적 인 오류 로그는 서버의 작동 상태를 방해해서는 안됩니다. – jayunit100

+0

로그 로테이터 (log-rotator)와 같은 소리가납니다. – hakre

답변

1

제 의견으로는 error_log가 충분하고 충분한 기능을 제공합니다. . 예 당신은 단지 그들을 관리하는 데 필요한 여러 로그 파일을 가질 수 있습니다 : 예를 들어 를,이 같은 것을 사용할 수 있습니다

ini_set('error_log','my_error_file.log'); 

그리고 자동 삭제 건에 대한

, 내가의 error_log를 사용하여 어떤 장점이 없다고 생각 , 만약 당신이 정말로 자동 삭제하고 싶지. php.ini에서 error_reporting을 사용하여 어딘가에 덤프하거나 그냥 로그 오프/최소로 설정해야합니다.

그리고 마지막으로, 매우 간단한 코드 스 니펫이 될 것이므로 자신의 로깅 클래스를 작성할 수 있습니다. 이는 매우 간단하고 환상적인 솔루션이며, 의지에 따라 실제로 작동 할 수 있습니다. 나는 보통 그렇게한다. 감사합니다 :)

+0

거기에 info_log가 있습니까? – jayunit100

+0

아무 것도 아니지만 유용한 syslog 기능이 있습니다. 시스템 로그 메시지를 생성합니다. –

3

글쎄, 처음에는 모든 오류가 기록되지 않아야합니다. 오류가 소프트웨어 내에서 처리 될 수 있다면 (90 %는 있어야하고 다른 50 %는 [존재하지 않는 러시아인 : P]가 존재하지 않아야 함). 작은 부분 (입력 오류 관련) 만 존재해야하며 어쨌든 기록해서는 안됩니다.

오류를 사용하는 대신 예외를 사용하고, 예외를 처리 할 수 ​​있으며, 그렇지 않은 경우 예외를 사용하여 스크립트를 중단 할 수 있습니다. 더 많은 예외 유형 (InvalidArgumentException, MathException, LoggedErrorException)을 허용하도록 Exception 클래스를 확장하면 독창적 인 결과를 얻을 수 있으며 전체 30 개의 Exception types 라이브러리를 만들었습니다. 그냥 당신을 확인하십시오 do it right!

그 외, error_log 예외를 사용하여 많은 세부 사항을 기록 할 것입니다, 당신이 원하는대로 로그온 할 수 있습니다. Filesystem Functions을 참조하십시오.

+0

예외에 관한 부분이 좋습니다. . 그러나 .... 나는 소셜 사이트와의 오랫동안 실행중인 HTTP 스트리밍 연결을 가지고 있습니다. 그래서 인터럽트가 예상됩니다 ... 그래서 당신이 암시하는 것처럼 흑백이 아닙니다. – jayunit100

+0

어떤 경우에는 인터럽트가 ** 예외적이므로 ** 예외를 던지고 ** 예외 **를 처리 한 다음 처리해야합니다 (로그). 클래스를 'HTTPStreamingException'으로 확장하고이를 다른 예외는 다른 처리기를 얻음). –

관련 문제