Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework2 Zend Framework 2 Zend/日志记录器_Zend Framework2_Zend Log - Fatal编程技术网

Zend framework2 Zend Framework 2 Zend/日志记录器

Zend framework2 Zend Framework 2 Zend/日志记录器,zend-framework2,zend-log,Zend Framework2,Zend Log,我尝试使用Zend Framework 2创建日志文件。我通过使用Zend\Log\Logger和Zend\Log\Writer\Stream找到了解决方案。事实上,它工作得很好。但问题是,我需要在每个操作方法和每个控制器类中使用该代码 有人知道如何为整个网站创建日志文件,而不必在每个操作方法和每个控制器类中编写相同的代码吗?谢谢你的回答 您可以使用EventManager来实现这种功能。任何时候出现错误都会触发您定义的特定错误事件。然后您就有了LogingModule,它将连接到您想要记录的每

我尝试使用Zend Framework 2创建日志文件。我通过使用Zend\Log\Logger和Zend\Log\Writer\Stream找到了解决方案。事实上,它工作得很好。但问题是,我需要在每个操作方法和每个控制器类中使用该代码


有人知道如何为整个网站创建日志文件,而不必在每个操作方法和每个控制器类中编写相同的代码吗?谢谢你的回答

您可以使用
EventManager
来实现这种功能。任何时候出现错误都会触发您定义的特定错误事件。然后您就有了
LogingModule
,它将连接到您想要记录的每个事件

当然,您必须将异常/错误消息传递到事件中

TL/DR EventManager是您应该寻找的。

我就是这样做的--$EventManager=$e->getApplication()->getEventManager()$eventManager->attach('dispatch.error',function($e){$exception=$e->getResult()->exception;if($exception){$sm=$e->getApplication()->>getServiceManager();$service=$sm->get('ApplicationServiceErrorHandling');$service->logException($exception);}); 这是你的意思吗?大体上,你不会附加到“dispatch.error”上,但是你更愿意连接到你的模块提供的事件。