diff options
author | Jordi Boggiano <j.boggiano@seld.be> | 2016-09-29 09:17:17 +0200 |
---|---|---|
committer | Jordi Boggiano <j.boggiano@seld.be> | 2016-09-29 09:17:17 +0200 |
commit | d72b886978e6878fb55d163ccbbc1a4cf6427f47 (patch) | |
tree | 4b5bfc2f1728be0cabef16724f55a7e0d2738f0e /src | |
parent | 40b48910307be4216643a19e19491ece640bc59c (diff) | |
download | monolog-d72b886978e6878fb55d163ccbbc1a4cf6427f47.zip monolog-d72b886978e6878fb55d163ccbbc1a4cf6427f47.tar.gz monolog-d72b886978e6878fb55d163ccbbc1a4cf6427f47.tar.bz2 |
Add support for AWS SDK v3
Diffstat (limited to 'src')
-rw-r--r-- | src/Monolog/Handler/DynamoDbHandler.php | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/Monolog/Handler/DynamoDbHandler.php b/src/Monolog/Handler/DynamoDbHandler.php index 7b20830..ad1011d 100644 --- a/src/Monolog/Handler/DynamoDbHandler.php +++ b/src/Monolog/Handler/DynamoDbHandler.php @@ -13,6 +13,7 @@ namespace Monolog\Handler; use Aws\Common\Aws; use Aws\DynamoDb\DynamoDbClient; +use Aws\DynamoDb\Marshaler; use Monolog\Formatter\ScalarFormatter; use Monolog\Logger; @@ -37,6 +38,16 @@ class DynamoDbHandler extends AbstractProcessingHandler protected $table; /** + * @var int + */ + protected $version; + + /** + * @var Marshaler + */ + protected $marshaler; + + /** * @param DynamoDbClient $client * @param string $table * @param int $level @@ -44,8 +55,11 @@ class DynamoDbHandler extends AbstractProcessingHandler */ public function __construct(DynamoDbClient $client, $table, $level = Logger::DEBUG, $bubble = true) { - if (!defined('Aws\Common\Aws::VERSION') || version_compare('3.0', Aws::VERSION, '<=')) { - throw new \RuntimeException('The DynamoDbHandler is only known to work with the AWS SDK 2.x releases'); + if (defined('Aws\Common\Aws::VERSION') && version_compare(Aws::VERSION, '3.0', '>=')) { + $this->version = 3; + $this->marshaler = new Marshaler; + } else { + $this->version = 2; } $this->client = $client; @@ -60,7 +74,11 @@ class DynamoDbHandler extends AbstractProcessingHandler protected function write(array $record) { $filtered = $this->filterEmptyFields($record['formatted']); - $formatted = $this->client->formatAttributes($filtered); + if ($this->version === 3) { + $formatted = $this->marshaler->marshalItem($filtered); + } else { + $formatted = $this->client->formatAttributes($filtered); + } $this->client->putItem(array( 'TableName' => $this->table, |