Loading src/Logger/JsonLogData.php +9 −3 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Drupal\jsonlog\Logger; use Drupal\Component\Serialization\Json; use Drupal\Component\Render\FormattableMarkup; use Drupal\Component\Utility\Unicode; use Drupal\Core\Logger\RfcLogLevel; use Drupal\Core\StringTranslation\TranslatableMarkup; Loading Loading @@ -75,7 +76,7 @@ class JsonLogData { } /** * @param string|TranslatableMarkup $entry * @param string|FormattableMarkup|TranslatableMarkup $entry * @param int|false $truncate * @param array $variables */ Loading @@ -91,10 +92,15 @@ class JsonLogData { } if (($entry)) { if ($entry instanceof TranslatableMarkup) { if ($entry instanceof FormattableMarkup) { /** @var FormattableMarkup $entry */ $this->message = $entry->jsonSerialize(); } elseif ($entry instanceof TranslatableMarkup) { /** @var TranslatableMarkup $entry */ $this->message = $entry->getUntranslatedString(); } else { } else { /** @var string message */ $this->message = empty($variables) ? $entry : strtr($entry, $variables); } Loading tests/src/Unit/JsonLogDataTest.php +11 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\jsonlog\Unit; use Drupal\Component\Render\FormattableMarkup; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\jsonlog\Logger\JsonLogData; use Drupal\Tests\UnitTestCase; Loading Loading @@ -84,6 +85,16 @@ class JsonLogDataTest extends UnitTestCase { $this->assertEmpty($this->data->getTrunc(), 'Message not truncated'); } public function testCanSetFormattableMessage() { $this->data = new JsonLogData('test_site_id', 'test_canonical'); $this->assertNull($this->data->getMessage(), 'Message empty by default'); $msg = new FormattableMarkup('formattable logging item', []); $this->data->setMessage($msg); $this->assertEquals('formattable logging item', $this->data->getMessage(), 'By default message gets logged.'); $this->assertEmpty($this->data->getTrunc(), 'Message not truncated'); } public function testCanSetTranslatableMessage() { $this->data = new JsonLogData('test_site_id', 'test_canonical'); $this->assertNull($this->data->getMessage(), 'Message empty by default'); Loading Loading
src/Logger/JsonLogData.php +9 −3 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Drupal\jsonlog\Logger; use Drupal\Component\Serialization\Json; use Drupal\Component\Render\FormattableMarkup; use Drupal\Component\Utility\Unicode; use Drupal\Core\Logger\RfcLogLevel; use Drupal\Core\StringTranslation\TranslatableMarkup; Loading Loading @@ -75,7 +76,7 @@ class JsonLogData { } /** * @param string|TranslatableMarkup $entry * @param string|FormattableMarkup|TranslatableMarkup $entry * @param int|false $truncate * @param array $variables */ Loading @@ -91,10 +92,15 @@ class JsonLogData { } if (($entry)) { if ($entry instanceof TranslatableMarkup) { if ($entry instanceof FormattableMarkup) { /** @var FormattableMarkup $entry */ $this->message = $entry->jsonSerialize(); } elseif ($entry instanceof TranslatableMarkup) { /** @var TranslatableMarkup $entry */ $this->message = $entry->getUntranslatedString(); } else { } else { /** @var string message */ $this->message = empty($variables) ? $entry : strtr($entry, $variables); } Loading
tests/src/Unit/JsonLogDataTest.php +11 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\jsonlog\Unit; use Drupal\Component\Render\FormattableMarkup; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\jsonlog\Logger\JsonLogData; use Drupal\Tests\UnitTestCase; Loading Loading @@ -84,6 +85,16 @@ class JsonLogDataTest extends UnitTestCase { $this->assertEmpty($this->data->getTrunc(), 'Message not truncated'); } public function testCanSetFormattableMessage() { $this->data = new JsonLogData('test_site_id', 'test_canonical'); $this->assertNull($this->data->getMessage(), 'Message empty by default'); $msg = new FormattableMarkup('formattable logging item', []); $this->data->setMessage($msg); $this->assertEquals('formattable logging item', $this->data->getMessage(), 'By default message gets logged.'); $this->assertEmpty($this->data->getTrunc(), 'Message not truncated'); } public function testCanSetTranslatableMessage() { $this->data = new JsonLogData('test_site_id', 'test_canonical'); $this->assertNull($this->data->getMessage(), 'Message empty by default'); Loading