Заметки WEB-разработчика

Полезные материалы для web-разработки

Логирование исключений (exceptions) в zend framework2

Как-то мне понадобилось вести лог выброшенных исключений в zend framework2. Предлагаю вашему вниманию пример кода, показывющий, как это можно реализовать.

Module.php

public function onBootstrap(MvcEvent $e)
{
    $eventManager = $e->getApplication()->getEventManager();
    $moduleRouteListener = new ModuleRouteListener();
    $moduleRouteListener->attach($eventManager);
    /**
     * Log any Uncaught Errors
     */
    $sharedManager = $e->getApplication()->getEventManager()->getSharedManager();
    $sm = $e->getApplication()->getServiceManager();
    $sharedManager->attach('Zend\Mvc\Application', 'dispatch.error',
         function($e) use ($sm) {
            if ($e->getParam('exception')){
                $sm->get('Logger')->crit($e->getParam('exception'));
            }
         }
    );
}

Там же

'factories' => array(
    'Logger' => function($sm){
        $logger = new \Zend\Log\Logger;
        $writer = new \Zend\Log\Writer\Stream('./data/log/'.date('Y-m-d').'-error.log');
        $logger->addWriter($writer);
        return $logger;
    },
    // ...
);

Комментарии

Комментарии через Вконтакте