Просмотр исходного кода

Added docblocks and fixed a couple tests

Jordi Boggiano 15 лет назад
Родитель
Сommit
811e6c79d6

+ 5 - 0
src/Monolog/Formatter/FormatterInterface.php

@@ -11,6 +11,11 @@
 
 namespace Monolog\Formatter;
 
+/**
+ * Interface for formatters
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 interface FormatterInterface
 {
     function format($message);

+ 8 - 1
src/Monolog/Formatter/JsonFormatter.php

@@ -13,11 +13,18 @@ namespace Monolog\Formatter;
 
 use Monolog\Logger;
 
+/**
+ * Encodes whatever message data is passed to it as json
+ *
+ * This can be useful to log to databases or remote APIs
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 class JsonFormatter implements FormatterInterface
 {
     public function format($message)
     {
-        $message['message'] = json_encode($message['message']);
+        $message['message'] = json_encode($message);
         return $message;
     }
 }

+ 7 - 0
src/Monolog/Formatter/LineFormatter.php

@@ -13,6 +13,13 @@ namespace Monolog\Formatter;
 
 use Monolog\Logger;
 
+/**
+ * Formats incoming messages into a one-line string
+ *
+ * This is especially useful for logging to files
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 class LineFormatter implements FormatterInterface
 {
     const SIMPLE_FORMAT = "[%datetime%] %channel%.%level_name%: %message%\n";

+ 7 - 0
src/Monolog/Handler/AbstractHandler.php

@@ -14,6 +14,13 @@ namespace Monolog\Handler;
 use Monolog\Logger;
 use Monolog\Formatter\LineFormatter;
 
+/**
+ * Base Handler class providing the Handler structure
+ *
+ * Classes extending it should (in most cases) only implement write($message)
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 abstract class AbstractHandler implements HandlerInterface
 {
     protected $level;

+ 6 - 3
src/Monolog/Handler/FingersCrossedHandler.php

@@ -14,7 +14,7 @@ namespace Monolog\Handler;
 use Monolog\Logger;
 
 /**
- * FingersCrossedHandler buffers all messages until a certain level is reached
+ * Buffers all messages until a certain level is reached
  *
  * The advantage of this approach is that you don't get any clutter in your log files.
  * Only requests which actually trigger an error (or whatever your actionLevel is) will be
@@ -51,7 +51,7 @@ class FingersCrossedHandler extends AbstractHandler
      * on, unless reset() is called, all messages are passed to the wrapped handler.
      *
      * @param array $message Message
-     * @return Boolean Whether the next handler in the stack should be called.
+     * @return Boolean Whether the message was handled
      */
     public function handle($message)
     {
@@ -73,7 +73,10 @@ class FingersCrossedHandler extends AbstractHandler
         } else {
             $this->handler->handle($message);
         }
-        return false === $this->bubble;
+        if ($this->bubble && $this->parent) {
+            $this->parent->handle($originalMessage);
+        }
+        return true;
     }
 
     /**

+ 5 - 0
src/Monolog/Handler/HandlerInterface.php

@@ -11,6 +11,11 @@
 
 namespace Monolog\Handler;
 
+/**
+ * Interface that all Monolog Handlers must implement
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 interface HandlerInterface
 {
     public function getHandler($message);

+ 13 - 2
src/Monolog/Handler/NullHandler.php

@@ -13,14 +13,25 @@ namespace Monolog\Handler;
 
 use Monolog\Logger;
 
+/**
+ * Blackhole
+ *
+ * Any message it can handle will be thrown away. This can be used
+ * to put on top of an existing stack to override it temporarily.
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 class NullHandler extends AbstractHandler
 {
     public function handle($message)
     {
         if ($message['level'] < $this->level) {
-            return false;
+            return $this->parent ? $this->parent->handle($message) : false;
+        }
+        if ($this->bubble && $this->parent) {
+            $this->parent->handle($originalMessage);
         }
-        return false === $this->bubble;
+        return true;
     }
 
     public function write($message)

+ 5 - 0
src/Monolog/Handler/RotatingFileHandler.php

@@ -11,6 +11,11 @@
 
 namespace Monolog\Handler;
 
+/**
+ * Stores logs to files that are rotated every n day/week/month
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 class RotatingFileHandler extends StreamHandler
 {
     protected $rotation;

+ 7 - 0
src/Monolog/Handler/StreamHandler.php

@@ -14,6 +14,13 @@ namespace Monolog\Handler;
 use Monolog\Formatter\SimpleFormatter;
 use Monolog\Logger;
 
+/**
+ * Stores to any stream resource
+ *
+ * Can be used to store into php://stderr, remote and local files, etc.
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 class StreamHandler extends AbstractHandler
 {
     protected $stream;

+ 1 - 1
src/Monolog/Handler/TestHandler.php

@@ -14,7 +14,7 @@ namespace Monolog\Handler;
 use Monolog\Logger;
 
 /**
- * TestHandler is used for testing purposes.
+ * Used for testing purposes.
  *
  * It records all messages and gives you access to them for verification.
  *

+ 8 - 0
src/Monolog/Logger.php

@@ -14,6 +14,14 @@ namespace Monolog;
 use Monolog\Handler\HandlerInterface;
 use Monolog\Handler\StreamHandler;
 
+/**
+ * Monolog log channel
+ *
+ * It contains a stack of Handlers and a stack of Processors,
+ * and uses them to store messages that are added to it.
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 class Logger
 {
     /**

+ 5 - 0
src/Monolog/Processor/WebProcessor.php

@@ -11,6 +11,11 @@
 
 namespace Monolog\Processor;
 
+/**
+ * Injects url/method and remote IP of the current web request in all messages
+ *
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ */
 class WebProcessor
 {
     public function __invoke($message, $handler)

+ 2 - 2
tests/Monolog/Formatter/JsonFormatterTest.php

@@ -18,13 +18,13 @@ class JsonFormatterTest extends \PHPUnit_Framework_TestCase
     public function testFormat()
     {
         $formatter = new JsonFormatter();
-        $message = $formatter->format(array(
+        $message = $formatter->format($msg = array(
             'level_name' => 'WARNING',
             'channel' => 'log',
             'message' => array('foo'),
             'datetime' => new \DateTime,
             'extra' => array(),
         ));
-        $this->assertEquals(json_encode(array('foo')), $message['message']);
+        $this->assertEquals(json_encode($msg), $message['message']);
     }
 }

+ 0 - 6
tests/Monolog/Handler/NullHandlerTest.php

@@ -27,12 +27,6 @@ class NullHandlerTest extends \PHPUnit_Framework_TestCase
         $this->assertFalse($handler->handle($this->getMessage(Logger::DEBUG)));
     }
 
-    public function testHandleBubbling()
-    {
-        $handler = new NullHandler(Logger::DEBUG, true);
-        $this->assertFalse($handler->handle($this->getMessage()));
-    }
-
     /**
      * No-op test for coverage
      */