mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-08 06:06:40 +02:00
Use more "unique" markers format for styling
This commit is contained in:
@@ -31,12 +31,12 @@ class BrowserConsoleHandler extends AbstractProcessingHandler
|
|||||||
*
|
*
|
||||||
* Example of formatted string:
|
* Example of formatted string:
|
||||||
*
|
*
|
||||||
* You can do [blue text]{color: blue} or [green background]{background-color: green; color: white}
|
* You can do [[blue text]]{color: blue} or [[green background]]{background-color: green; color: white}
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
protected function getDefaultFormatter()
|
protected function getDefaultFormatter()
|
||||||
{
|
{
|
||||||
return new LineFormatter('[%channel%]{macro: autolabel} [%level_name%]{font-weight: bold} %message%');
|
return new LineFormatter('[[%channel%]]{macro: autolabel} [[%level_name%]]{font-weight: bold} %message%');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -111,7 +111,7 @@ class BrowserConsoleHandler extends AbstractProcessingHandler
|
|||||||
$args = array(self::quote('font-weight: normal'));
|
$args = array(self::quote('font-weight: normal'));
|
||||||
$format = '%c' . $formatted;
|
$format = '%c' . $formatted;
|
||||||
$self = 'Monolog\Handler\BrowserConsoleHandler';
|
$self = 'Monolog\Handler\BrowserConsoleHandler';
|
||||||
$format = preg_replace_callback('/\[(.*?)\]\{(.*?)\}/', function($m) use(&$args, $self) {
|
$format = preg_replace_callback('/\[\[(.*?)\]\]\{([^}]*)\}/s', function($m) use(&$args, $self) {
|
||||||
$args[] = $self::quote($self::handleCustomStyles($m[2], $m[1]));
|
$args[] = $self::quote($self::handleCustomStyles($m[2], $m[1]));
|
||||||
$args[] = $self::quote('font-weight: normal');
|
$args[] = $self::quote('font-weight: normal');
|
||||||
return '%c' . $m[1] . '%c';
|
return '%c' . $m[1] . '%c';
|
||||||
|
@@ -29,7 +29,7 @@ class BrowserConsoleHandlerTest extends TestCase
|
|||||||
$handler = new BrowserConsoleHandler();
|
$handler = new BrowserConsoleHandler();
|
||||||
$handler->setFormatter($this->getIdentityFormatter());
|
$handler->setFormatter($this->getIdentityFormatter());
|
||||||
|
|
||||||
$handler->handle($this->getRecord(Logger::DEBUG, 'foo[bar]{color: red}'));
|
$handler->handle($this->getRecord(Logger::DEBUG, 'foo[[bar]]{color: red}'));
|
||||||
|
|
||||||
$expected = <<<EOF
|
$expected = <<<EOF
|
||||||
(function(c){if (c && c.groupCollapsed) {
|
(function(c){if (c && c.groupCollapsed) {
|
||||||
@@ -40,14 +40,31 @@ EOF;
|
|||||||
$this->assertEquals($expected, BrowserConsoleHandler::generateScript());
|
$this->assertEquals($expected, BrowserConsoleHandler::generateScript());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testEscaping()
|
||||||
|
{
|
||||||
|
$handler = new BrowserConsoleHandler();
|
||||||
|
$handler->setFormatter($this->getIdentityFormatter());
|
||||||
|
|
||||||
|
$handler->handle($this->getRecord(Logger::DEBUG, "[foo] [[\"bar\n[baz]\"]]{color: red}"));
|
||||||
|
|
||||||
|
$expected = <<<EOF
|
||||||
|
(function(c){if (c && c.groupCollapsed) {
|
||||||
|
c.log("%c[foo] %c\"bar\\n[baz]\"%c", "font-weight: normal", "color: red", "font-weight: normal");
|
||||||
|
}})(console);
|
||||||
|
EOF;
|
||||||
|
|
||||||
|
$this->assertEquals($expected, BrowserConsoleHandler::generateScript());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function testAutolabel()
|
public function testAutolabel()
|
||||||
{
|
{
|
||||||
$handler = new BrowserConsoleHandler();
|
$handler = new BrowserConsoleHandler();
|
||||||
$handler->setFormatter($this->getIdentityFormatter());
|
$handler->setFormatter($this->getIdentityFormatter());
|
||||||
|
|
||||||
$handler->handle($this->getRecord(Logger::DEBUG, '[foo]{macro: autolabel}'));
|
$handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}'));
|
||||||
$handler->handle($this->getRecord(Logger::DEBUG, '[bar]{macro: autolabel}'));
|
$handler->handle($this->getRecord(Logger::DEBUG, '[[bar]]{macro: autolabel}'));
|
||||||
$handler->handle($this->getRecord(Logger::DEBUG, '[foo]{macro: autolabel}'));
|
$handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}'));
|
||||||
|
|
||||||
$expected = <<<EOF
|
$expected = <<<EOF
|
||||||
(function(c){if (c && c.groupCollapsed) {
|
(function(c){if (c && c.groupCollapsed) {
|
||||||
|
Reference in New Issue
Block a user