summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJordi Boggiano <j.boggiano@seld.be>2016-09-29 09:17:17 +0200
committerJordi Boggiano <j.boggiano@seld.be>2016-09-29 09:17:17 +0200
commitd72b886978e6878fb55d163ccbbc1a4cf6427f47 (patch)
tree4b5bfc2f1728be0cabef16724f55a7e0d2738f0e /src
parent40b48910307be4216643a19e19491ece640bc59c (diff)
downloadmonolog-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.php24
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,