From d434bb479418752aa6db088b4770ec2470b55af3 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Thu, 5 Mar 2015 00:57:49 +0000 Subject: [PATCH] Add INF/NaN normalization, fixes #523 --- src/Monolog/Formatter/NormalizerFormatter.php | 9 +++++++++ tests/Monolog/Formatter/NormalizerFormatterTest.php | 6 ++++++ 2 files changed, 15 insertions(+) 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); }