diff --git a/core/lib/Drupal/Core/Command/DrupalConsoleLogger.php b/core/lib/Drupal/Core/Command/DrupalConsoleLogger.php
index 2f7dc2e..554a8ae 100644
--- a/core/lib/Drupal/Core/Command/DrupalConsoleLogger.php
+++ b/core/lib/Drupal/Core/Command/DrupalConsoleLogger.php
@@ -26,6 +26,9 @@ class DrupalConsoleLogger extends AbstractLogger implements LoggerAwareInterface
    * {@inheritdoc}
    */
   public function log($level, $message, array $context = []): void {
+    // PSR-3 allows Stringable messages (e.g. TranslatableMarkup), but
+    // strtr() and the placeholder parser both require a string.
+    $message = (string) $message;
     // Populate the message placeholders and then replace them in the message.
     $message_placeholders = $this->parser->parseMessagePlaceholders($message, $context);
     $message = empty($message_placeholders) ? $message : strtr($message, $message_placeholders);
