PHP 오류, 잡히지 않은 예외 및 사용자가 데이터베이스 테이블에 로그온하려는 다른 항목을 기록하기위한 모니터링 솔루션을 구축하고 있습니다. 상업용 젠드 서버 (Zend Server)의 모니터링 솔루션 대체품.오류 처리주기에 연결
Zend_Log를 확장하고 언급 된 모든 경우를 처리 할 수있는 Monitor 클래스를 작성했습니다. 내 목표는 부트 스트랩이 될 한 곳으로 구성을 줄이는 것입니다. logExceptions() 메서드는 확장,
protected function _initMonitor()
{
$config = Zend_Registry::get('config');
$monitorDb = Zend_Db::factory($config->resources->db->adapter, $config->resources->db->params);
$monitor = new Survey_Monitor(new Zend_Log_Writer_Db($monitorDb, 'logEntries'), $config->projectName);
$monitor->registerErrorHandler()->logExceptions();
}
registerErrorHandler() 메소드는 DB에 PHP 오류 로깅을 사용하도록 설정 단지 보호 플래그를 설정 : 순간 나는이 같은 모니터를 초기화하고 있습니다. ErrorController errorAction에서
나는 다음과 같은 줄을 추가//use the monitor to log exceptions, if enabled
$monitor = Zend_Registry::get('monitor');
if (TRUE == $monitor->loggingExceptions)
{
$monitor->log($errors->exception);
}
내가 비록 ErrorController에 코드를 추가하지 싶습니다, 나는 오히려 동적으로 플러그인을 등록 할 것입니다. 그러면 기존 프로젝트에 사용자가 쉽게 통합 할 수 있습니다.
질문 : postDispatch 후크를 사용하는 컨트롤러 플러그인을 등록 할 수 있으며 동일한 효과가 있습니까? 어떤 이벤트가 errorAction을 트리거하는지 이해하지 못합니다. 회로의 여러 단계에서 여러 이벤트가 발생하면 여러 후크를 사용해야합니까?
플러그인에 예외를 저장하고 응답으로 저장된 스택과 스택이 동일한 지 확인할 수 있습니다. 그런 다음 처리를 건너 뜁니다. – Xerkus