Logger injection

As the Rackspace client extends the OpenStack client, they both support passing $options as an array via the constructor’s third parameter. The options are passed as a config to the Guzzle client, but also allow to inject your own logger.

Your logger should implement the Psr\Log\LoggerInterface as defined in PSR-3. One example of a compatible logger is Monolog. When the client does create a service, it will inject the logger if one is available.

To inject a LoggerInterface compatible logger into a new client:

use Monolog\Logger;
use OpenCloud\OpenStack;

// create a log channel
$logger = new Logger('name');

$client = new OpenStack('http://identity.my-openstack.com/v2.0', array(
  'username' => 'foo',
  'password' => 'bar'
), array(
  'logger' => $logger,