예제 #1
0
 /**
  * @priority normal
  *
  * @param ProxyResponseEvent $event
  */
 public function onProxyResponse(ProxyResponseEvent $event)
 {
     if (!$event->isCancelled() && $event->hasResponse()) {
         $response = $event->getResponse();
         $request = $event->getRequest();
         if (!$response->hasHeaderWithValue('X-Cache', 'HIT')) {
             $response->addHeader('X-Cache', 'MISS');
             $response->addHeader('X-Cache-Hits', 0);
         }
         $oldVia = $response->getHeader('Via');
         $oldVia[] = $event->getProxy()->getConfig()->getProxyName();
         $response->setHeader('Via', $oldVia);
         if ($this->cacheStrategy->canStoreResponseInCache($response, $event->getRequest())) {
             $this->storage->save($request, $response, $response->getTtl());
             $event->getLogger()->debug('Response was stored in cache');
         }
     }
 }
예제 #2
0
 /**
  * @priority MONITOR
  * @param ProxyResponseEvent $event
  */
 public function onProxyResponse(ProxyResponseEvent $event)
 {
     $request = $event->getRequest();
     $response = $event->getResponse();
     $logLine = $this->getLogLine($this->getLogData($request, $response));
     $level = LogLevel::INFO;
     if (!$response || !$response->isSuccessful()) {
         $level = LogLevel::WARNING;
     }
     $this->logger->log($level, $logLine);
 }