1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-04 04:07:39 +02:00

Added docblocks and fixed a couple tests

This commit is contained in:
Jordi Boggiano
2011-02-22 12:10:54 +01:00
parent 81c6cd3ed1
commit 811e6c79d6
14 changed files with 79 additions and 15 deletions

View File

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

View File

@@ -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;
}
}

View File

@@ -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";

View File

@@ -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;

View File

@@ -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;
}
/**

View File

@@ -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);

View File

@@ -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;
}
return false === $this->bubble;
if ($this->bubble && $this->parent) {
$this->parent->handle($originalMessage);
}
return true;
}
public function write($message)

View File

@@ -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;

View File

@@ -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;

View File

@@ -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.
*

View File

@@ -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
{
/**

View File

@@ -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)

View File

@@ -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']);
}
}

View File

@@ -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
*/