logger->logMessage(sprintf('Start %s operation.%s', $this->operation->getDescription(), PHP_EOL)); foreach ($this->csvReader->readData() as $data) { try { $result = $this->operation->calculate($data->number1, $data->number2); $this->csvWriter->addLine( [$data->number1, $data->number2, $result] ); } catch (InvalidResultException $e) { $this->logger->logMessage( sprintf( 'Numbers %d and %d are wrong. %s%s', $data->number1, $data->number2, $e->getMessage(), PHP_EOL ) ); } } $this->logger->logMessage(sprintf('Finished %s operation.%s', $this->operation->getDescription(), PHP_EOL)); } }