diff --git a/core/core.services.yml b/core/core.services.yml index 269b2c2614..3e296db796 100644 --- a/core/core.services.yml +++ b/core/core.services.yml @@ -581,7 +581,7 @@ services: arguments: ['@entity_type.manager', '@entity_field.manager', '@keyvalue', '@cache.discovery'] entity.module_install.subscriber: class: \Drupal\Core\EventSubscriber\ModuleInstallerEntitySubscriber - arguments: ['@kernel'] + arguments: ['@kernel', '@logger.channel.default'] tags: - { name: event_subscriber } entity.form_builder: diff --git a/core/lib/Drupal/Core/EventSubscriber/ModuleInstallerEntitySubscriber.php b/core/lib/Drupal/Core/EventSubscriber/ModuleInstallerEntitySubscriber.php index cc7e4aceb5..a490b70743 100644 --- a/core/lib/Drupal/Core/EventSubscriber/ModuleInstallerEntitySubscriber.php +++ b/core/lib/Drupal/Core/EventSubscriber/ModuleInstallerEntitySubscriber.php @@ -7,6 +7,8 @@ use Drupal\Core\Entity\FieldableEntityInterface; use Drupal\Core\Extension\ModuleEvent; use Drupal\Core\Extension\ModuleEvents; +use Drupal\Core\Utility\Error; +use Psr\Log\LoggerInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** @@ -21,14 +23,24 @@ class ModuleInstallerEntitySubscriber implements EventSubscriberInterface { */ protected $kernel; + /** + * The logger service. + * + * @var \Psr\Log\LoggerInterface + */ + protected $logger; + /** * Constructs a new instance. * - * @param \Drupal\Core\DrupalKernelInterface + * @param \Drupal\Core\DrupalKernelInterface $kernel * The application kernel to retrieve the rebuilt service container from. + * @param \Psr\Log\LoggerInterface $logger + * A logger instance. */ - public function __construct(DrupalKernelInterface $kernel) { + public function __construct(DrupalKernelInterface $kernel, LoggerInterface $logger) { $this->kernel = $kernel; + $this->logger = $logger; } /** @@ -38,6 +50,7 @@ public function __construct(DrupalKernelInterface $kernel) { * after module installation. * * @return \Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface + * The entity definition update manager. */ protected function getEntityDefinitionUpdateManager() { return $this->kernel->getContainer()->get('entity.definition_update_manager'); @@ -50,6 +63,7 @@ protected function getEntityDefinitionUpdateManager() { * after module installation. * * @return \Drupal\Core\Entity\EntityFieldManagerInterface + * The entity definition update manager. */ protected function getEntityFieldManager() { return $this->kernel->getContainer()->get('entity_field.manager'); @@ -62,6 +76,7 @@ protected function getEntityFieldManager() { * after module installation. * * @return \Drupal\Core\Entity\EntityTypeManagerInterface + * The entity type manager. */ protected function getEntityTypeManager() { return $this->kernel->getContainer()->get('entity_type.manager'); @@ -95,8 +110,8 @@ public function onModuleInstall(ModuleEvent $event) { try { $this->getEntityDefinitionUpdateManager()->installFieldStorageDefinition($storage_definition->getName(), $entity_type->id(), $module, $storage_definition); } - catch (EntityStorageException $e) { - watchdog_exception('system', $e, 'An error occurred while notifying the creation of the @name field storage definition: "!message" in %function (line %line of %file).', ['@name' => $storage_definition->getName()]); + catch (EntityStorageException $exception) { + $this->logger->error('An error occurred while notifying the creation of the @name field storage definition: "!message" in %function (line %line of %file).', ['@name' => $storage_definition->getName()] + Error::decodeException($exception)); } } }