From 9c2f081c9a12a6c2d801ae41a34d147819de19a9 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 29 Jun 2011 19:23:43 +0200 Subject: [PATCH] Add support for serializing resources in LineFormatter --- src/Monolog/Formatter/LineFormatter.php | 4 ++++ tests/Monolog/Formatter/LineFormatterTest.php | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Monolog/Formatter/LineFormatter.php b/src/Monolog/Formatter/LineFormatter.php index 69f04f98..53100b79 100644 --- a/src/Monolog/Formatter/LineFormatter.php +++ b/src/Monolog/Formatter/LineFormatter.php @@ -96,6 +96,10 @@ class LineFormatter implements FormatterInterface return $normalized; } + if (is_resource($data)) { + return '[resource]'; + } + return sprintf("[object] (%s: %s)", get_class($data), json_encode($data)); } } diff --git a/tests/Monolog/Formatter/LineFormatterTest.php b/tests/Monolog/Formatter/LineFormatterTest.php index 01f7ac6a..54548a4b 100644 --- a/tests/Monolog/Formatter/LineFormatterTest.php +++ b/tests/Monolog/Formatter/LineFormatterTest.php @@ -68,10 +68,10 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase 'channel' => 'meh', 'context' => array(), 'datetime' => new \DateTime, - 'extra' => array('foo' => new TestFoo, 'bar' => new TestBar, 'baz' => array()), + 'extra' => array('foo' => new TestFoo, 'bar' => new TestBar, 'baz' => array(), 'res' => fopen('php://memory', 'rb')), 'message' => 'foobar', )); - $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\Formatter\\TestFoo: {"foo":"foo"})","bar":"[object] (Monolog\\Formatter\\TestBar: {})","baz":[]}'."\n", $message); + $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\Formatter\\TestFoo: {"foo":"foo"})","bar":"[object] (Monolog\\Formatter\\TestBar: {})","baz":[],"res":"[resource]"}'."\n", $message); } public function testBatchFormat()