Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] Raportowanie błedów
csharp
post
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 3
Dołączył: 22.04.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


chciałem włączyć raportowanie błędów ZENDa na maila, pojawia się błąd - dostaje nową wiadomość.

Generalnie wszystko mi działa, stworzyłem sobie klasę do wysyłania wiadomości i z poziomu ErrorController.php odwołuje się do tej funkcji, zastanawiam się tylko czy można jeszcze inne rzeczy wyciągnąć z błedów i czy prawidłowo to robię?

dwie rzeczy sobie wyciągam:

  1. $send = new My_Mail();
  2. $send->mailErrors($errors->exception, var_export($errors->request, true));


w zasadzie mail, który do mnie przychodzi jest wystarczający.

Co zrobić z błędami, które nie są wyświetlane przez ErrorController? które całkowicie wywalają aplikacje i przy .htaccess włączonym na staging nie wyświetlają nic.. da się jakoś zrobić powiadamianie o takich błędach?

  1. $errors = $this->_getParam('error_handler');
  2.  
  3. if (!$errors || !$errors instanceof ArrayObject) {
  4. $this->view->message = 'You have reached the error page';
  5. return;
  6. }
  7.  
  8. switch ($errors->type) {
  9. case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
  10. case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
  11. case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
  12. // 404 error -- controller or action not found
  13. $this->getResponse()->setHttpResponseCode(404);
  14. $priority = Zend_Log::NOTICE;
  15. $this->view->message = 'Strona, której poszukujesz nie została znaleziona.';
  16. break;
  17. default:
  18. // application error
  19. $this->getResponse()->setHttpResponseCode(500);
  20. $priority = Zend_Log::CRIT;
  21. $this->view->message = 'Błąd aplikacji';
  22. break;
  23. }
  24.  
  25. // Log exception, if logger available
  26. if ($log = $this->getLog()) {
  27. $log->log($this->view->message, $priority, $errors->exception);
  28. $log->log('Request Parameters', $priority, $errors->request->getParams());
  29. }
  30.  
  31. // conditionally display exceptions
  32. if ($this->getInvokeArg('displayExceptions') == true) {
  33. $this->view->exception = $errors->exception;
  34. }
  35. $this->view->request = $errors->request;
  36.  
  37. $send = new My_Mail();
  38. $send->mailErrors($errors->exception, var_export($errors->request, true));
  39. }
  40.  
  41. public function getLog()
  42. {
  43. $bootstrap = $this->getInvokeArg('bootstrap');
  44. if (!$bootstrap->hasResource('Log')) {
  45. return false;
  46. }
  47. $log = $bootstrap->getResource('Log');
  48. return $log;
  49. }


Ten post edytował csharp 29.09.2012, 23:44:57
Go to the top of the page
+Quote Post
irmidjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


set_error_handler i set_exception_handler
Go to the top of the page
+Quote Post
csharp
post
Post #3





Grupa: Zarejestrowani
Postów: 127
Pomógł: 3
Dołączył: 22.04.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


no tak, ale jak mam fatal error i skrypt jest przerywany?

ma ktoś jeszcze jakieś pomysły?
Go to the top of the page
+Quote Post
irmidjusz
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


przecież jest wyraźnie napisane w manualu:
Cytat
The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most of E_STRICT raised in the file where set_error_handler() is called.

If errors occur before the script is executed (e.g. on file uploads) the custom error handler cannot be called since it is not registered at that time.


Co możesz zrobić? hmm trzeba by program PHP uruchamiać wewnątrz zwirtualizowanego środowiska wykonawczego, które monitoruje stan aplikacji i obsługuje odpowiednio błędy (IMG:style_emoticons/default/wink.gif) (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
csharp
post
Post #5





Grupa: Zarejestrowani
Postów: 127
Pomógł: 3
Dołączył: 22.04.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


nie będę przesadzać już (IMG:style_emoticons/default/biggrin.gif) dzięki
Go to the top of the page
+Quote Post
Thommee
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 8.08.2010

Ostrzeżenie: (0%)
-----



W logach serwera, apache'a coś powinno się odłożyć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 04:29