summaryrefslogtreecommitdiff
path: root/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php')
-rw-r--r--vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php19
1 files changed, 18 insertions, 1 deletions
diff --git a/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php b/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
index beafea64..46bf41b3 100644
--- a/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
+++ b/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
@@ -58,6 +58,15 @@ class NormalizerFormatter implements FormatterInterface
protected function normalize($data)
{
if (null === $data || is_scalar($data)) {
+ if (is_float($data)) {
+ if (is_infinite($data)) {
+ return ($data > 0 ? '' : '-') . 'INF';
+ }
+ if (is_nan($data)) {
+ return 'NaN';
+ }
+ }
+
return $data;
}
@@ -85,7 +94,15 @@ class NormalizerFormatter implements FormatterInterface
return $this->normalizeException($data);
}
- return sprintf("[object] (%s: %s)", get_class($data), $this->toJson($data, true));
+ // non-serializable objects that implement __toString stringified
+ if (method_exists($data, '__toString') && !$data instanceof \JsonSerializable) {
+ $value = (string) $data;
+ } else {
+ // the rest is json-serialized in some way
+ $value = $this->toJson($data, true);
+ }
+
+ return sprintf("[object] (%s: %s)", get_class($data), $value);
}
if (is_resource($data)) {