Symfony2, регистрирует исключение в определенном файле

#php #symfony #exception

#php #symfony #исключение

Вопрос:

Я работаю над API с Symfony и FOSRestBundle.

В моем ApiController я хочу регистрировать все исключения в определенном файле: api.log

Вот пример моего кода:

    public function getUserAction($param){
        if(is_int($param)){
            $user = $this->getDoctrine()->getRepository('ProjectBundle:Account')->findOneById($param);
        }
        else{
            $user = $this->getDoctrine()->getRepository('ProjectBundle:Account')->findOneByUsername($param);
        }

        if(!is_object($user)){
            return "User Not Found";
        }

        return $user;
    }
  

Где мне нужно перехватить и зарегистрировать исключение? В if(!is_object($user)){ или когда я извлеку $user ? И как я могу сохранить и протоколировать исключение в моем файле api.log?

Спасибо!

Ответ №1:

На мой взгляд, следует добавить прослушиватель событий kernel.exception, который записывает исключение в файл api.log

http://symfony.com/doc/current/cookbook/service_container/event_listener.html