Phalcon Framework上记录的异常在哪里


Where are exceptions logged on Phalcon Framework?

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

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

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

谢谢你的帮助!

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());
}

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

//我们注册活动经理$di->set('dispatcher',function(){//创建事件管理器$eventsManager=新的eventsManager();//附加侦听器$eventsManager->attach("dispatch:beforeException",函数($event,$dispatcher,$exception){//替代方式、控制器或操作不存在开关($exception->getCode()){case''Phalcon''Dispatcher::EXCEPTION_HANDLE_NOT_FOUND:$strUrlRelocate="http://"$_服务器['SERVER_NAME']。"/";header("Location:".$strUrlRelocate);打破case''Phalcon''Dispatcher::EXCEPTION_ACTION_NOT_FOUND:error_log($exception);打破}});$dispatcher=新MvcDispatcher();//将事件管理器绑定到视图组件$dispatcher->setEventsManager($eventsManager);return$dispatcher;},true);

也许一个有效的例子会对你有所帮助。