I changed it to ExceptionInterface instead of ClientException because others may be thrown when a non-resolvable dynamic mapping update happens while sending the message(s) to ES. 

For example 2 log records with the following content in $context (or $extra) will throw a BulkException rather than a ClientException:
```
$record1['context'] = array('foo' => 'bar');
$record2['context'] = array('foo' => array('bar' => 'beer');
```

We can use the formatter to handle $context and $extra in a fixed pattern or just ignore them but that seems a more limiting factor on either the format or availability of this information in ES. I assume that for actual usage the ES mapping is preset to avoid dynamic mapping updates. Mostly production systems are (should :-)) be configured with dynamic mapping disabled anyways. 

Any thoughts ? Or don't you expect the above to become an issue ?