trait FakeLogEntries

Same name in other branches
  1. 8.9.x core/modules/dblog/tests/src/Functional/FakeLogEntries.php \Drupal\Tests\dblog\Functional\FakeLogEntries
  2. 10 core/modules/dblog/tests/src/Functional/FakeLogEntries.php \Drupal\Tests\dblog\Functional\FakeLogEntries
  3. 11.x core/modules/dblog/tests/src/Functional/FakeLogEntries.php \Drupal\Tests\dblog\Functional\FakeLogEntries

Provides methods to generate log entries.

This trait is meant to be used only by test classes.

Hierarchy

1 file declares its use of FakeLogEntries
DbLogTest.php in core/modules/dblog/tests/src/Kernel/DbLogTest.php

File

core/modules/dblog/tests/src/Functional/FakeLogEntries.php, line 13

Namespace

Drupal\Tests\dblog\Functional
View source
trait FakeLogEntries {
    
    /**
     * Generates a number of random database log events.
     *
     * @param int $count
     *   Number of watchdog entries to generate.
     * @param array $options
     *   These options are used to override the defaults for the test.
     *   An associative array containing any of the following keys:
     *   - 'channel': String identifying the log channel to be output to.
     *     If the channel is not set, the default of 'custom' will be used.
     *   - 'message': String containing a message to be output to the log.
     *     A simple default message is used if not provided.
     *   - 'variables': Array of variables that match the message string.
     *   - 'severity': Log severity level as defined in logging_severity_levels.
     *   - 'link': String linking to view the result of the event.
     *   - 'uid': Int identifying the user id for the user.
     *   - 'request_uri': String identifying the location of the request.
     *   - 'referer': String identifying the referring url.
     *   - 'ip': String The ip address of the client machine triggering the log
     *     entry.
     *   - 'timestamp': Int unix timestamp.
     */
    private function generateLogEntries($count, $options = []) {
        global $base_root;
        $user = !empty($this->adminUser) ? $this->adminUser : new AnonymousUserSession();
        // Prepare the fields to be logged.
        $log = $options + [
            'channel' => 'custom',
            'message' => 'Dblog test log message',
            'variables' => [],
            'severity' => RfcLogLevel::NOTICE,
            'link' => NULL,
            'uid' => $user->id(),
            'request_uri' => $base_root . \Drupal::request()->getRequestUri(),
            'referer' => \Drupal::request()->server
                ->get('HTTP_REFERER'),
            'ip' => '127.0.0.1',
            'timestamp' => REQUEST_TIME,
        ];
        $logger = $this->container
            ->get('logger.dblog');
        $message = $log['message'] . ' Entry #';
        for ($i = 0; $i < $count; $i++) {
            $log['message'] = $message . $i;
            $logger->log($log['severity'], $log['message'], $log);
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary
FakeLogEntries::generateLogEntries private function Generates a number of random database log events.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.