문제

오류를 예외로 변환하는 방법도 알아냈고, 잡히지 않으면 멋지게 표시해 주는데, 어떻게 유용한 방법으로 기록하는지 모르겠습니다.단순히 파일에 쓰는 것은 유용하지 않을 것입니다. 그렇죠?그리고 아직 예외의 원인을 모르는 경우 데이터베이스에 액세스할 위험이 있습니까?

도움이 되었습니까?

해결책

나는 정말 좋아한다 log4php 아직 인큐베이터에서 나오지 않았음에도 불구하고 로깅을 위해.나는 거의 모든 분야에서 log4net을 사용하고 있으며 그 스타일이 나에게 매우 자연스럽다는 것을 알았습니다.

시스템 충돌과 관련하여 오류를 여러 대상에 기록할 수 있습니다(예: 문제가 발생할 때만 작동하는 임계값이 CRITICAL 또는 ERROR인 어펜더가 있음).기존 어펜더가 얼마나 안전한지 잘 모르겠습니다. 데이터베이스가 다운된 경우 해당 어펜더는 어떻게 실패합니까? 하지만 로그할 수 없는 경우 정상적으로 실패하는 자체 어펜더를 아주 쉽게 작성할 수 있습니다.

다른 팁

당신은 사용할 수 있습니다 set_error_handler 오류를 기록하기 위해 사용자 정의 예외를 설정합니다.기본 예외 처리기의 역추적은 원인에 대한 정보를 제공할 수 있으므로 개인적으로 이를 데이터베이스에 저장하는 것을 고려하고 있습니다. 그러나 데이터베이스 처리기가 예외를 트리거한 경우에는 물론 불가능합니다.

당신은 또한 사용할 수 있습니다 오류 기록 오류를 기록합니다.다음을 포함한 메시지 대상을 선택할 수 있습니다.

에서 인용 오류 기록

  1. error_log 구성 지시문의 설정에 따라 운영 체제의 시스템 로깅 메커니즘이나 파일을 사용하는 PHP의 시스템 로거.이것이 기본 옵션입니다.
  2. 대상 매개변수의 주소로 이메일로 전송됩니다.이는 네 번째 매개변수인 extra_headers가 사용되는 유일한 메시지 유형입니다.
  3. 파일 대상에 추가됩니다.메시지 문자열 끝에 개행 문자가 자동으로 추가되지 않습니다.

편집하다:마크다운에는 밑줄에 대한 noparse 태그가 있나요?

단순히 파일에 쓰는 것은 유용하지 않을 것입니다. 그렇죠?

하지만 물론 그렇습니다. 화면에 표시하는 것보다 훨씬 더 좋은 일입니다.사용자에게 "죄송합니다. 실수했습니다."라는 멋진 화면을 보여주고 싶습니다.엔지니어에게 통보되었습니다.돌아가서 다시 시도하세요'라는 메시지가 표시되고 기술적인 세부 사항은 전혀 없습니다. 그렇게 하면 보안상 위험할 수 있기 때문입니다.공유 메일함으로 이메일을 보내고 나중에 검토할 수 있도록 예외 사항을 파일이나 DB에 기록할 수 있습니다.이것이 최선의 방법이 될 것입니다.

파일에 기록하고 파일 크기나 마지막 수정 날짜의 변경 사항을 확인하도록 모니터링 시스템을 설정할 수도 있습니다.Webmin은 쉬운 방법 중 하나이지만 더 완벽한 소프트웨어 솔루션이 있습니다.

일회성 오류라는 것을 알고 있다면 알림을 이메일로 보내는 것이 좋습니다.그러나 분당 조회수가 많은 웹사이트에서는 항상 이메일로 알림을 보내세요.나는 시스템이 데이터베이스에 연결할 수 없다는 내용의 분당 수백 통의 이메일이 생성되어 웹 사이트가 다운되는 것을 본 적이 있습니다.모든 새 메시지에 대해 메일 서버가 실행되기 때문에 LoadAvg가 200보다 크다는 사실은 전혀 도움이 되지 않았습니다.이 경우 가장 좋은 시나리오는 단연 워치독이 파일 크기를 확인하고 외부 서비스에 연결하여 SMS(예: IM)를 보내거나 외부 시스템이 웹 페이지에서 오류 메시지(IM 등)를 찾도록 하는 것이었습니다. 화면에 표시될 필요는 없습니다. HTML 주석에 표시될 수 있습니다.

나는 그것이 오류가 발생한 위치에 따라 많이 다르다고 생각합니다.DB가 다운된 경우 DB에 기록하는 것은 좋은 생각이 아닙니다.)

나는 시스템로그() 오류를 기록하는 기능이 있지만 syslog 지원이 없는 시스템에서는 오류를 파일에 쓰는 데 문제가 없습니다.예를 들어 이메일이나 재버 메시지를 보내도록 시스템을 쉽게 설정할 수 있습니다. 로그워치 또는 표준 syslogd.

나는 두 번째 log4php입니다.나는 일반적으로 ERROR 또는 CRITITCAL에 예외와 같은 항목을 보내고 이를 syslog에 기록하도록 구성했습니다.거기에서 syslog 피드를 가져올 수 있습니다. 제노스, 나기오스, 스플렁크 또는 syslog가 통신할 수 있는 다른 모든 것.

Google Forms를 사용하여 PHP 예외를 포착하고 기록할 수도 있습니다.튜토리얼이 있습니다 여기 그 과정을 설명하는 거죠.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top