Procházet zdrojové kódy

Messages are now passed as arrays

Jordi Boggiano před 15 roky
rodič
revize
860194e879

+ 1 - 1
src/Monolog/Formatter/FormatterInterface.php

@@ -13,5 +13,5 @@ namespace Monolog\Formatter;
 
 interface FormatterInterface
 {
-    function format($log, $level, $message);
+    function format($log, $message);
 }

+ 5 - 5
src/Monolog/Formatter/SimpleFormatter.php

@@ -27,19 +27,19 @@ class SimpleFormatter implements FormatterInterface
         $this->dateFormat = $dateFormat ?: self::SIMPLE_DATE;
     }
 
-    public function format($log, $level, $message)
+    public function format($log, $message)
     {
         $defaults = array(
             'log' => $log,
-            'level' => Logger::getLevelName($level),
+            'level' => Logger::getLevelName($message['level']),
             'date' => date($this->dateFormat),
         );
 
-        if (is_array($message)) {
-            $vars = array_merge($defaults, $message);
+        if (is_array($message['message'])) {
+            $vars = array_merge($defaults, $message['message']);
         } else {
             $vars = $defaults;
-            $vars['message'] = $message;
+            $vars['message'] = $message['message'];
         }
 
         $message = $this->format;

+ 1 - 0
src/Monolog/Log.php

@@ -22,6 +22,7 @@ class Log
     public function __construct($name, $level = Logger::WARNING, $writers = array())
     {
         $this->name = $name;
+        // TODO move level down to the writers
         $this->level = $level;
         $this->writers = is_array($writers) ? $writers : array($writers);
     }

+ 4 - 0
src/Monolog/Logger.php

@@ -62,6 +62,10 @@ class Logger
 
     public function addMessage($level, $message, $log = null)
     {
+        $message = array(
+            'message' => $message,
+            'level' => $level,
+        );
         if (null === $log) {
             $logs = $this->logs;
         } else {

+ 1 - 1
src/Monolog/Writer/NullWriter.php

@@ -15,7 +15,7 @@ use Monolog\Formatter\FormatterInterface;
 
 class NullWriter implements WriterInterface
 {
-    public function write($log, $level, $message)
+    public function write($log, $message)
     {
     }
 

+ 3 - 3
src/Monolog/Writer/StreamWriter.php

@@ -28,15 +28,15 @@ class StreamWriter implements WriterInterface
         }
     }
 
-    public function write($log, $level, $message)
+    public function write($log, $message)
     {
         if (null === $this->stream) {
             $this->stream = fopen($this->url, 'a');
         }
         if ($this->formatter) {
-            $message = $this->formatter->format($log, $level, $message);
+            $message = $this->formatter->format($log, $message);
         }
-        fwrite($this->stream, (string) $message);
+        fwrite($this->stream, (string) $message['message']);
     }
 
     public function close()

+ 1 - 1
src/Monolog/Writer/WriterInterface.php

@@ -16,6 +16,6 @@ use Monolog\Formatter\FormatterInterface;
 interface WriterInterface
 {
     function setFormatter(FormatterInterface $formatter);
-    function write($log, $level, $message);
+    function write($log, $message);
     function close();
 }

+ 8 - 5
tests/Monolog/Formatter/SimpleFormatterTest.php

@@ -18,17 +18,20 @@ class SimpleFormatterTest extends \PHPUnit_Framework_TestCase
     public function testDefFormatWithString()
     {
         $formatter = new SimpleFormatter(null, 'Y-m-d');
-        $message = $formatter->format('log', Logger::WARNING, 'foo');
+        $message = $formatter->format('log', array('level' => Logger::WARNING, 'message' => 'foo'));
         $this->assertEquals('['.date('Y-m-d').'] log.WARNING: foo'."\n", $message);
     }
 
     public function testDefFormatWithArray()
     {
         $formatter = new SimpleFormatter(null, 'Y-m-d');
-        $message = $formatter->format('xx', Logger::ERROR, array(
-            'log' => 'log',
-            'level' => 'WARNING',
-            'message' => 'foo'
+        $message = $formatter->format('xx', array(
+            'level' => Logger::ERROR,
+            'message' => array(
+                'log' => 'log',
+                'level' => 'WARNING',
+                'message' => 'foo',
+            )
         ));
         $this->assertEquals('['.date('Y-m-d').'] log.WARNING: foo'."\n", $message);
     }

+ 3 - 3
tests/Monolog/Writer/StreamWriterTest.php

@@ -19,9 +19,9 @@ class StreamWritterTest extends \PHPUnit_Framework_TestCase
     {
         $handle = fopen('php://memory', 'a+');
         $writer = new StreamWriter($handle);
-        $writer->write('log', Logger::WARNING, 'test');
-        $writer->write('log', Logger::WARNING, 'test2');
-        $writer->write('log', Logger::WARNING, 'test3');
+        $writer->write('log', array('level' => Logger::WARNING, 'message' => 'test'));
+        $writer->write('log', array('level' => Logger::WARNING, 'message' => 'test2'));
+        $writer->write('log', array('level' => Logger::WARNING, 'message' => 'test3'));
         fseek($handle, 0);
         $this->assertEquals('testtest2test3', fread($handle, 100));
     }