You are here

public function LogEntry::log in Ultimate Cron 8.2

Logs a message.

Parameters

string $message: The message to log.

array $variables: Replacement variables for t().

int $level: The log level, see \Drupal\Core\Logger\RfcLogLevel.

File

src/Logger/LogEntry.php, line 112

Class

LogEntry
Class for Ultimate Cron log entries.

Namespace

Drupal\ultimate_cron\Logger

Code

public function log($message, $variables = array(), $level = RfcLogLevel::NOTICE) {
  if ($variables !== NULL && gettype($message) === 'string') {
    $message = t($message, $variables);
  }
  $this->message .= $message;
  if ($this->severity < 0 || $this->severity > $level) {
    $this->severity = $level;
  }

  // Make sure that message doesn't become too big.
  if (mb_strlen($this->message) > $this->log_entry_size) {
    while (mb_strlen($this->message) > $this->log_entry_size) {
      $firstline = mb_strpos(rtrim($this->message, "\n"), "\n");
      if ($firstline === FALSE || $firstline == mb_strlen($this->message)) {

        // Only one line? That's a big line ... truncate it without mercy!
        $this->message = mb_substr($this->message, -$this->log_entry_size);
        break;
      }
      $this->message = mb_substr($this->message, $firstline + 1);
    }
    $this->message = '.....' . $this->message;
  }
}