/**
  * @param Exception $e
  * @param null|Payone_TransactionStatus_Request_Interface $request
  */
 public function protocolException(Exception $e, Payone_TransactionStatus_Request_Interface $request = null)
 {
     if ($request !== null) {
         $this->getServiceApplyFilters()->apply($request->toArray());
     }
     foreach ($this->loggers as $key => $logger) {
         /** @var $logger Payone_Protocol_Logger_Interface */
         $logger->log(get_class($e) . ' ' . $e->getMessage());
         if ($request !== null) {
             $requestAsString = $request->__toString();
             $logger->log($requestAsString, Payone_Protocol_Logger_Interface::LEVEL_ERROR);
         }
     }
 }
 /**
  * @param Payone_TransactionStatus_Request_Interface $request
  * @param null|Payone_TransactionStatus_Response_Interface $response
  */
 public function protocol(Payone_TransactionStatus_Request_Interface $request, Payone_TransactionStatus_Response_Interface $response = null)
 {
     foreach ($this->loggers as $key => $logger) {
         /** @var $logger Payone_Protocol_Logger_Interface */
         $requestAsString = $request->__toString();
         $responseAsString = $response->__toString();
         $logger->log($requestAsString, Payone_Protocol_Logger_Interface::LEVEL_INFO);
         $logger->log($responseAsString, Payone_Protocol_Logger_Interface::LEVEL_INFO);
     }
     foreach ($this->repositories as $key => $repository) {
         /** @var $repository Payone_TransactionStatus_Persistence_Interface */
         $repository->save($request, $response);
     }
 }