2015-01-26 6 views
5

Я использую следующую конфигурацию Monolog в Symfony 2 для регистрации меньших ошибок в файлах в каталоге /app/logs/ и отправки электронных писем для всех критических ошибок.Конфигурировать symfony monolog для хранения журналов 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 

Моя проблема заключается в том, что она появляется этой установка предотвращающего родной каротаж Апача установлен в виртуальном хосте конфигурации:

<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> 

В ${APACHE_LOG_DIR}/vm.healthcare-cpd.error.log и {APACHE_LOG_DIR}/vm.healthcare-cpd.php.error.log файлов пусты, которые я считаю быть вызвано Монологом ,

Итак, мой вопрос: как настроить Монолог в Symfony 2, чтобы протоколы Apache и PHP все еще работали параллельно с протоколированием Monolog?

ответ

2

Журнал ошибок Apache не имеет ничего общего с вашим журналом приложений (Монолог).

Проблема в том, что если вы обрабатываете ошибки, ловя php-ошибки или исключения в вашем php-коде или если Symfony улавливает их и преобразует их в правильный ответ (что на самом деле делает) Apache никогда не узнает, что что-то не удалось и поэтому не записывает ничего в свой журнал ошибок.

Смежные вопросы