3

サイト、フレームワークYiiへのすべてのHTTPリクエストをログに記録したいと思います。

フレームワークの標準機能を使用できますか?

4

2 に答える 2

3

onBeginRequestまたはを使用して実行しましたonEndRequest。詳細はこちら:Yiiでイベントを使用する方法

基本的に、グローバルリクエストイベントを独自のクラスにフックしてから、やりたいことを何でも実行します。

于 2013-01-04T20:57:37.580 に答える
3

Yii2では、イベントが呼び出されbeforeRequestますafterRequesthttp://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
});
于 2017-12-04T09:50:38.170 に答える