我们正在使用zend框架2为一个新的应用程序,我想有相同的日志系统的Rails或类似的,我想每个请求有一个日志,有可能做到这一点在Zend ?记录每个请求在ZF2
0
A
回答
5
它取决于什么你想记录。如果它只是一个访问日志,你应该尝试使用Web服务器的日志。来自Apache/nginx/IIS等的日志表现比您在ZF2应用中获得的更好。
如果您需要登录ZF2应用程序,您有两种选择。第一个选项是bootstrap
。这是您可以使用的最早的选项之一,所以可能是最好的选择。不过,你也可以看看route
或dispatch
。这两个事件在应用程序的“运行”阶段被调用。通过这些事件,例如可以使用路径匹配,因此如果您的请求与任何控制器匹配(或者如果您没有匹配,则为404),您就知道(或不知道)。
一些例子。假设您在logger
密钥下的ServiceManager
中配置了一个记录器。然后记录在bootstrap
:
namespace Application;
class Module
{
public function onBootstrap($e)
{
$app = $e->getApplication();
$sm = $app->getServiceManager();
$logger = $sm->get('logger');
$logger->debug('Log here!');
}
}
或者例如,如果您等待route
,您可以将侦听器route
事件:
namespace Application;
use Zend\Mvc\MvcEvent;
use Zend\Mvc\Router\RouteMatch;
class Module
{
public function onBootstrap($e)
{
$app = $e->getApplication();
$em = $app->getEventManager();
$sm = $app->getServiceManager();
$logger = $sm->get('logger');
$em->attach(MvcEvent::EVENT_ROUTE, function($e) use ($logger) {
$match = $e->getRouteMatch();
// No route, this is a 404
if (!$match instanceof RouteMatch) {
return;
}
$logger->debug(sprintf(
'Route event with route %s',
$match->getMatchedRouteName()
));
});
}
}
+0
像往常一样,真棒,真棒。 ;-) –
2
相关问题
- 1. 如何在.NET Core WebAPI中自动记录每个请求?
- 2. Puma请求记录
- 3. ZF2 - 记录不存在
- 4. 如何使用Alamofire记录每个请求/响应?
- 5. Rails 2.3.x每个请求日志记录
- 6. 如何将每个请求记录到csv文件
- 7. firefox扩展记录每个标签的http请求url
- 8. 为每个网页的用户记录所有请求
- 9. 如何登录每个MediaWiki API请求?
- 10. Restangular GET请求返回100个记录
- 11. 记录/审计403个请求
- 12. 如何记录Node.js请求
- 13. 快速记录请求
- 14. ServiceStack MiniProfiler Ajax请求记录
- 15. 记录Ehcache获取请求
- 16. 记录请求的时间
- 17. 记录expressJS JSON请求
- 18. 请求跟踪记录器
- 19. 记录请求后回复
- 20. 如何记录AFHTTPRequestOperationManager请求?
- 21. 请求互斥记录
- 22. 对每个请求
- 23. 为每个请求
- 24. 为每个请求
- 25. 每个记录
- 26. 每个记录
- 27. 从两个时间表请求记录时为空记录集
- 28. 新Ajax请求onComplete每个Ajax请求
- 29. 如何以及为什么index.php在ZF2中的每个请求上执行?
- 30. Asp.net MVC5发生的Application_Start每一个请求 - 每个请求
为什么不使用Apache的访问日志? – hohner