fix ConsoleFormatter - call to a member function format() on string
This commit is contained in:
parent
e197c9ab1b
commit
648832823f
|
@ -133,7 +133,9 @@ class ConsoleFormatter implements FormatterInterface
|
|||
}
|
||||
|
||||
$formatted = strtr($this->options['format'], [
|
||||
'%datetime%' => $record['datetime']->format($this->options['date_format']),
|
||||
'%datetime%' => $record['datetime'] instanceof \DateTimeInterface
|
||||
? $record['datetime']->format($this->options['date_format'])
|
||||
: $record['datetime'],
|
||||
'%start_tag%' => sprintf('<%s>', $levelColor),
|
||||
'%level_name%' => sprintf('%-9s', $record['level_name']),
|
||||
'%end_tag%' => '</>',
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Bridge\Monolog\Tests\Formatter;
|
||||
|
||||
use Monolog\Logger;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Bridge\Monolog\Formatter\ConsoleFormatter;
|
||||
|
||||
class ConsoleFormatterTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @dataProvider providerFormatTests
|
||||
*/
|
||||
public function testFormat(array $record, $expectedMessage)
|
||||
{
|
||||
$formatter = new ConsoleFormatter();
|
||||
self::assertSame($expectedMessage, $formatter->format($record));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function providerFormatTests()
|
||||
{
|
||||
$currentDateTime = new \DateTime();
|
||||
|
||||
return [
|
||||
'record with DateTime object in datetime field' => [
|
||||
'record' => [
|
||||
'message' => 'test',
|
||||
'context' => [],
|
||||
'level' => Logger::WARNING,
|
||||
'level_name' => Logger::getLevelName(Logger::WARNING),
|
||||
'channel' => 'test',
|
||||
'datetime' => $currentDateTime,
|
||||
'extra' => [],
|
||||
],
|
||||
'expectedMessage' => sprintf(
|
||||
"%s <fg=cyan>WARNING </> <comment>[test]</> test\n",
|
||||
$currentDateTime->format(ConsoleFormatter::SIMPLE_DATE)
|
||||
),
|
||||
],
|
||||
'record with string in datetime field' => [
|
||||
'record' => [
|
||||
'message' => 'test',
|
||||
'context' => [],
|
||||
'level' => Logger::WARNING,
|
||||
'level_name' => Logger::getLevelName(Logger::WARNING),
|
||||
'channel' => 'test',
|
||||
'datetime' => '2019-01-01T00:42:00+00:00',
|
||||
'extra' => [],
|
||||
],
|
||||
'expectedMessage' => "2019-01-01T00:42:00+00:00 <fg=cyan>WARNING </> <comment>[test]</> test\n",
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
Reference in New Issue