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

Messages are now passed as arrays

This commit is contained in:
Jordi Boggiano
2011-02-18 19:19:24 +01:00
parent 37d7f20694
commit 860194e879
9 changed files with 27 additions and 19 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -28,15 +28,15 @@ class StreamWriter implements WriterInterface
} }
} }
public function write($log, $level, $message) public function write($log, $message)
{ {
if (null === $this->stream) { if (null === $this->stream) {
$this->stream = fopen($this->url, 'a'); $this->stream = fopen($this->url, 'a');
} }
if ($this->formatter) { 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() public function close()

View File

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

View File

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

View File

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