You are here

interface LoggerChannelInterface in Service Container 7

Same name and namespace in other branches
  1. 7.2 lib/Drupal/Core/Logger/LoggerChannelInterface.php \Drupal\Core\Logger\LoggerChannelInterface

Logger channel interface.

This interface defines the full behavior of the central Drupal logger facility. However, when writing code that does logging, use the generic \Psr\Log\LoggerInterface for typehinting instead (you shouldn't need the methods here).

To add a new logger to the system, implement \Psr\Log\LoggerInterface and add a service for that class to a services.yml file tagged with the 'logger' tag. The default logger channel implementation will call the log() method of every logger service with some useful data set in the $context argument of log(): request_uri, referer, ip, user, uid.

SECURITY NOTE: the caller might also set a 'link' in the $context array which will be printed as-is by the dblog module under an "operations" header. Usually this is a "view", "edit" or similar relevant link. Make sure to use proper, secure link generation facilities; some are listed below.

Hierarchy

Expanded class hierarchy of LoggerChannelInterface

All classes that implement LoggerChannelInterface

See also

\Drupal\Core\Logger\RfcLoggerTrait

\Psr\Log\LoggerInterface

\Drupal\Core\Logger\\LoggerChannelFactoryInterface

\Drupal\Core\Utility\LinkGeneratorInterface

\Drupal\Core\Routing\LinkGeneratorTrait::l()

\Drupal\Core\Entity\EntityInterface::link()

1 file declares its use of LoggerChannelInterface
LoggerChannel.php in src/Logger/LoggerChannel.php
Contains \Drupal\service_container\Logger\LoggerChannel.

File

lib/Drupal/Core/Logger/LoggerChannelInterface.php, line 40
Contains \Drupal\Core\Logger\LoggerChannelInterface.

Namespace

Drupal\Core\Logger
View source
interface LoggerChannelInterface extends LoggerInterface {

  /**
   * Sets the request stack.
   *
   * @param \Symfony\Component\HttpFoundation\RequestStack|null $requestStack
   *   The current request object.
   */
  public function setRequestStack(RequestStack $requestStack = NULL);

  /**
   * Sets the current user.
   *
   * @param \Drupal\Core\Session\AccountInterface|null $current_user
   *   The current user object.
   */
  public function setCurrentUser(AccountInterface $current_user = NULL);

  /**
   * Sets the loggers for this channel.
   *
   * @param array $loggers
   *   An array of arrays of \Psr\Log\LoggerInterface keyed by priority.
   */
  public function setLoggers(array $loggers);

  /**
   * Adds a logger.
   *
   * @param \Psr\Log\LoggerInterface $logger
   *   The PSR-3 logger to add.
   * @param int $priority
   *   The priority of the logger being added.
   */
  public function addLogger(LoggerInterface $logger, $priority = 0);

}

Members

Namesort descending Modifiers Type Description Overrides
LoggerChannelInterface::addLogger public function Adds a logger. 1
LoggerChannelInterface::setCurrentUser public function Sets the current user. 1
LoggerChannelInterface::setLoggers public function Sets the loggers for this channel. 1
LoggerChannelInterface::setRequestStack public function Sets the request stack. 1
LoggerInterface::alert public function Action must be taken immediately. 2
LoggerInterface::critical public function Critical conditions. 2
LoggerInterface::debug public function Detailed debug information. 2
LoggerInterface::emergency public function System is unusable. 2
LoggerInterface::error public function Runtime errors that do not require immediate action but should typically be logged and monitored. 2
LoggerInterface::info public function Interesting events. 2
LoggerInterface::log public function Logs with an arbitrary level. 3
LoggerInterface::notice public function Normal but significant events. 2
LoggerInterface::warning public function Exceptional occurrences that are not errors. 2