Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Logger/LoggerChannelTrait.php \Drupal\Core\Logger\LoggerChannelTrait
  2. 9 core/lib/Drupal/Core/Logger/LoggerChannelTrait.php \Drupal\Core\Logger\LoggerChannelTrait

Wrapper methods for the logger factory service.

This utility trait should only be used in application-level code, such as classes that would implement ContainerInjectionInterface. Services registered in the Container should not use this trait but inject the appropriate service directly for easier testing.

Hierarchy

See also

\Drupal\Core\DependencyInjection\ContainerInjectionInterface

3 files declare their use of LoggerChannelTrait
ControllerBase.php in core/lib/Drupal/Core/Controller/ControllerBase.php
FormBase.php in core/lib/Drupal/Core/Form/FormBase.php
LanguageNegotiator.php in core/modules/language/src/LanguageNegotiator.php

File

core/lib/Drupal/Core/Logger/LoggerChannelTrait.php, line 15

Namespace

Drupal\Core\Logger
View source
trait LoggerChannelTrait {

  /**
   * The logger channel factory service.
   *
   * @var \Drupal\Core\Logger\LoggerChannelFactoryInterface
   */
  protected $loggerFactory;

  /**
   * Gets the logger for a specific channel.
   *
   * @param string $channel
   *   The name of the channel. Can be any string, but the general practice is
   *   to use the name of the subsystem calling this.
   *
   * @return \Psr\Log\LoggerInterface
   *   The logger for the given channel.
   *
   * @todo Require the use of injected services:
   *   https://www.drupal.org/node/2733703
   */
  protected function getLogger($channel) {
    if (!$this->loggerFactory) {
      $this->loggerFactory = \Drupal::service('logger.factory');
    }
    return $this->loggerFactory
      ->get($channel);
  }

  /**
   * Injects the logger channel factory.
   *
   * @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $logger_factory
   *   The logger channel factory service.
   *
   * @return $this
   */
  public function setLoggerFactory(LoggerChannelFactoryInterface $logger_factory) {
    $this->loggerFactory = $logger_factory;
    return $this;
  }

}

Members

Name Modifiers Type Description Overridessort ascending
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.