mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-05 04:37:38 +02:00
Merge pull request #345 from snapshotpl/formater
Fix #150: Table formatter for FirePHP
This commit is contained in:
@@ -22,6 +22,8 @@ use Monolog\Logger;
|
|||||||
*/
|
*/
|
||||||
class WildfireFormatter extends NormalizerFormatter
|
class WildfireFormatter extends NormalizerFormatter
|
||||||
{
|
{
|
||||||
|
const TABLE = 'table';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Translates Monolog log levels to Wildfire levels.
|
* Translates Monolog log levels to Wildfire levels.
|
||||||
*/
|
*/
|
||||||
@@ -67,13 +69,22 @@ class WildfireFormatter extends NormalizerFormatter
|
|||||||
$message = reset($message);
|
$message = reset($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isset($record['context'][self::TABLE])){
|
||||||
|
$type = 'TABLE';
|
||||||
|
$label = $record['channel'] .': '. $record['message'];
|
||||||
|
$message = $record['context'][self::TABLE];
|
||||||
|
} else {
|
||||||
|
$type = $this->logLevels[$record['level']];
|
||||||
|
$label = $record['channel'];
|
||||||
|
}
|
||||||
|
|
||||||
// Create JSON object describing the appearance of the message in the console
|
// Create JSON object describing the appearance of the message in the console
|
||||||
$json = $this->toJson(array(
|
$json = $this->toJson(array(
|
||||||
array(
|
array(
|
||||||
'Type' => $this->logLevels[$record['level']],
|
'Type' => $type,
|
||||||
'File' => $file,
|
'File' => $file,
|
||||||
'Line' => $line,
|
'Line' => $line,
|
||||||
'Label' => $record['channel'],
|
'Label' => $label,
|
||||||
),
|
),
|
||||||
$message,
|
$message,
|
||||||
), $handleError);
|
), $handleError);
|
||||||
|
@@ -108,4 +108,35 @@ class WildfireFormatterTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
$wildfire->formatBatch(array($record));
|
$wildfire->formatBatch(array($record));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Monolog\Formatter\WildfireFormatter::format
|
||||||
|
*/
|
||||||
|
public function testTableFormat()
|
||||||
|
{
|
||||||
|
$wildfire = new WildfireFormatter();
|
||||||
|
$record = array(
|
||||||
|
'level' => Logger::ERROR,
|
||||||
|
'level_name' => 'ERROR',
|
||||||
|
'channel' => 'table-channel',
|
||||||
|
'context' => array(
|
||||||
|
WildfireFormatter::TABLE => array(
|
||||||
|
array('col1', 'col2', 'col3'),
|
||||||
|
array('val1', 'val2', 'val3'),
|
||||||
|
array('foo1', 'foo2', 'foo3'),
|
||||||
|
array('bar1', 'bar2', 'bar3'),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'datetime' => new \DateTime("@0"),
|
||||||
|
'extra' => array(),
|
||||||
|
'message' => 'table-message',
|
||||||
|
);
|
||||||
|
|
||||||
|
$message = $wildfire->format($record);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'171|[{"Type":"TABLE","File":"","Line":"","Label":"table-channel: table-message"},[["col1","col2","col3"],["val1","val2","val3"],["foo1","foo2","foo3"],["bar1","bar2","bar3"]]]|',
|
||||||
|
$message
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user