サイト、フレームワークYiiへのすべてのHTTPリクエストをログに記録したいと思います。
フレームワークの標準機能を使用できますか?
onBeginRequest
またはを使用して実行しましたonEndRequest
。詳細はこちら:Yiiでイベントを使用する方法
基本的に、グローバルリクエストイベントを独自のクラスにフックしてから、やりたいことを何でも実行します。
Yii2では、イベントが呼び出されbeforeRequest
ますafterRequest
(http://www.yiiframework.com/doc-2.0/guide-structure-applications.html)
例えば:
Yii::$app->on('afterRequest', function($event) {
//do something...
//response object is in $event->sender->response
//response data is in $event->sender->response->data
//request object is in $event->sender->request
});
ただし、これは応答データが応答コンテンツに準備される前です(たとえば、応答形式に従ってResponse::FORMAT_JSON
)。したがって、真の最終応答本文が必要な場合は、これを行う必要があります(http://www.yiiframework.com/doc-2.0/ guide-runtime-responses.html#sending-response):
Yii::$app->response->on(\yii\web\Response::EVENT_AFTER_SEND, function($event) { //alternatively use EVENT_AFTER_PREPARE
//now you can access $event->sender->content and eg. $event->sender->getHeaders()
//Also, you have access to the request through Yii::$app->request
});