You are here

public function LogsHttpLogger::registerEvent in Logs HTTP 8

To prevent multiple registration of the same error, we check that identical events are not captured twice, thus reducing the final HTTP requests needed.

Overrides LogsHttpLoggerInterface::registerEvent

1 call to LogsHttpLogger::registerEvent()
LogsHttpLogger::log in src/Logger/LogsHttpLogger.php

File

src/Logger/LogsHttpLogger.php, line 95

Class

LogsHttpLogger
Implements a Logs Http Logger instance.

Namespace

Drupal\logs_http\Logger

Code

public function registerEvent($level, string $message, array $context = []) {

  // Populate the message placeholders and then replace them in the message.
  $message_placeholders = $this->logMessageParser
    ->parseMessagePlaceholders($message, $context);
  $message = empty($message_placeholders) ? $message : strtr($message, $message_placeholders);
  $event = [
    'timestamp' => $context['timestamp'],
    'type' => $this->severityLevels[$level]
      ->getUntranslatedString(),
    'ip' => $context['ip'],
    'request_uri' => $context['request_uri'],
    'referer' => $context['referer'],
    'uid' => $context['uid'],
    'link' => strip_tags($context['link']),
    'message' => $message,
    'severity' => $level,
  ];
  if (!empty($context['@backtrace_string'])) {
    $event['exception_trace'] = $context['@backtrace_string'];
  }
  if ($environment_uuid = $this->config
    ->get('environment_uuid')) {
    $event['uuid'] = $environment_uuid;
  }
  return $event;
}