2015-01-26 10 views
5

Używam poniższej konfiguracji Monolog w Symfony 2, aby rejestrować mniejsze błędy w plikach w katalogu /app/logs/ i wysyłać wiadomości e-mail dla wszystkich krytycznych błędów.Skonfiguruj monologię symfony do przechowywania dzienników apache

monolog: 
    handlers: 
     main: 
      level: error 
      type: stream 
      path: "%kernel.logs_dir%/%kernel.environment%_remaining.log" 
      channels: ["!doctrine", "!request", "!security"] 
     request: 
      type: fingers_crossed 
      handler: requests 
     requests: 
      type: group 
      members: [request_critical, request_error] 
     request_critical: 
      level: critical 
      type: stream 
      path: "%kernel.logs_dir%/%kernel.environment%_request_critical.log" 
      channels: [request] 
     request_error: 
      level: error 
      type: stream 
      path: "%kernel.logs_dir%/%kernel.environment%_request.log" 
      channels: [request] 
     doctrine: 
      level: error 
      type: stream 
      path: "%kernel.logs_dir%/%kernel.environment%_doctrine.log" 
      channels: [doctrine] 
     security: 
      level: error 
      type: stream 
      path: "%kernel.logs_dir%/%kernel.environment%_security.log" 
      channels: [security] 
     mail: 
      type: fingers_crossed 
      action_level: critical 
      handler: buffered 
     buffered: 
      type: buffer 
      handler: swift 
     swift: 
      type: swift_mailer 
      from_email: "%mailer_from_address%" 
      to_email: "%development_address%" 
      subject: A critical error occurred 

Moim problemem jest to, że wydaje się to ustawienie uniemożliwia rodzimy rejestrowanie Apache ustawiony w Wirtualnej config Host:

<VirtualHost *:80>   
     <Directory "/mnt/vm/vm.healthcare-cpd/web"> 
      Header set Access-Control-Allow-Origin "*" 
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride All 
      Order allow,deny 
      Allow from all 
      Require all granted 
     </Directory> 

     php_flag log_errors on 
     php_value error_reporting 2147483647 

     ErrorLog ${APACHE_LOG_DIR}/vm.healthcare-cpd.error.log 
     CustomLog ${APACHE_LOG_DIR}/vm.healthcare-cpd.access.log combined 
     php_value error_log ${APACHE_LOG_DIR}/vm.healthcare-cpd.php.error.log 
</VirtualHost> 

W ${APACHE_LOG_DIR}/vm.healthcare-cpd.error.log i {APACHE_LOG_DIR}/vm.healthcare-cpd.php.error.log pliki są puste, co wierzę, aby być spowodowane Monolog .

Moje pytanie brzmi: jak skonfigurować Monolog w Symfony 2, aby rejestrowanie Apache i PHP działało równolegle z rejestrowaniem Monolog?

Odpowiedz

2

Dziennik błędów Apache nie ma nic wspólnego z logiem aplikacji (Monolog).

Problem polega na tym, że jeśli usuniesz błędy, łapiąc błędy lub wyjątki php w swoim kodzie php, lub jeśli Symfony je złapie i przekształci w odpowiednią odpowiedź (co w rzeczywistości robi), Apache nigdy się nie dowie, że coś nie działa i dlatego nie rejestruje niczego w swoim dzienniku błędów.

Powiązane problemy