diff options
Diffstat (limited to 'vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php')
-rw-r--r-- | vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php | 19 |
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)) { |