diff --git a/src/Monolog/Formatter/NormalizerFormatter.php b/src/Monolog/Formatter/NormalizerFormatter.php index beafea64..654e7901 100644 --- a/src/Monolog/Formatter/NormalizerFormatter.php +++ b/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; } diff --git a/tests/Monolog/Formatter/NormalizerFormatterTest.php b/tests/Monolog/Formatter/NormalizerFormatterTest.php index 00bbb249..75dae895 100644 --- a/tests/Monolog/Formatter/NormalizerFormatterTest.php +++ b/tests/Monolog/Formatter/NormalizerFormatterTest.php @@ -28,6 +28,9 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase 'context' => array( 'foo' => 'bar', 'baz' => 'qux', + 'inf' => INF, + '-inf' => -INF, + 'nan' => acos(4), ), )); @@ -45,6 +48,9 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase 'context' => array( 'foo' => 'bar', 'baz' => 'qux', + 'inf' => 'INF', + '-inf' => '-INF', + 'nan' => 'NaN', ) ), $formatted); }