Phalcon Framework上的异常记录在哪里?

时间:2016-01-12 21:21:33

标签: php phalcon

我有一个基于Phalcon Framework的现有应用程序,我的问题是没有在任何地方记录异常。

当发生一些致命错误时,我可以在php erros上看到它,但不能看到异常。

写入默认日志的位置?我可以为日志定义自定义路径吗?

谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

Phalcon PHP异常记录

您在try...catch循环中处理异常:

try { ...run application here } catch ( \Exception $e ) { ...do logging here }

实例化内置的Phalcon记录器(注意:我正在使用文件适配器):

$logger = new \Phalcon\Logger\Adapter\File("../app/logs/exceptions.log");

记录异常消息:

$logger->log($e->getMessage());

解决方案摘要

$logger = new \Phalcon\Logger\Adapter\File("../app/logs/test.log");
try { ...run application here } catch ( \Exception $e ) { 
    $logger->log($e->getMessage());
}

答案 1 :(得分:0)

我的代码中有以下异常处理程序:


    // We register the events manager
    $di->set('dispatcher', function () {

        // Create an event manager
        $eventsManager = new EventsManager();

        // Attach a listener
        $eventsManager->attach("dispatch:beforeException", function ($event, $dispatcher, $exception) {
            // Alternative way, controller or action doesn't exist
            switch ($exception->getCode()) {
                case \Phalcon\Dispatcher::EXCEPTION_HANDLER_NOT_FOUND:
                    $strUrlRelocate = "http://" . $_SERVER['SERVER_NAME'] . "/";
                    header("Location:" . $strUrlRelocate);
                    break;

                case \Phalcon\Dispatcher::EXCEPTION_ACTION_NOT_FOUND:
                    error_log($exception);
                    break;
            }
        });

        $dispatcher = new MvcDispatcher();

        // Bind the eventsManager to the view component
        $dispatcher->setEventsManager($eventsManager);

        return $dispatcher;

    }, true);

也许一个有效的例子可以帮助你。