You are here

public function LoggerChannel::log in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Logger/LoggerChannel.php \Drupal\Core\Logger\LoggerChannel::log()

Logs with an arbitrary level.

Parameters

mixed $level:

string $message:

array $context:

Return value

null

Overrides LoggerTrait::log

File

core/lib/Drupal/Core/Logger/LoggerChannel.php, line 79
Contains \Drupal\Core\Logger\LoggerChannel.

Class

LoggerChannel
Defines a logger channel that most implementations will use.

Namespace

Drupal\Core\Logger

Code

public function log($level, $message, array $context = array()) {

  // Merge in defaults.
  $context += array(
    'channel' => $this->channel,
    'link' => '',
    'user' => NULL,
    'uid' => 0,
    'request_uri' => '',
    'referer' => '',
    'ip' => '',
    'timestamp' => time(),
  );

  // Some context values are only available when in a request context.
  if ($this->requestStack && ($request = $this->requestStack
    ->getCurrentRequest())) {
    $context['request_uri'] = $request
      ->getUri();
    $context['referer'] = $request->headers
      ->get('Referer', '');
    $context['ip'] = $request
      ->getClientIP();
    if ($this->currentUser) {
      $context['user'] = $this->currentUser;
      $context['uid'] = $this->currentUser
        ->id();
    }
  }
  if (is_string($level)) {

    // Convert to integer equivalent for consistency with RFC 5424.
    $level = $this->levelTranslation[$level];
  }

  // Call all available loggers.
  foreach ($this
    ->sortLoggers() as $logger) {
    $logger
      ->log($level, $message, $context);
  }
}