DbLogController::topLogMessages

public DbLogController::topLogMessages($type)

Shows the most frequent log messages of a given event type.

Messages are not truncated on this page because events detailed herein do not have links to a detailed view.

Use one of the above *Report() methods.

Parameters

string $type: Type of database log events to display (e.g., 'search').

Return value

array A build array in the format expected by drupal_render().

File

core/modules/dblog/src/Controller/DbLogController.php, line 380

Class

DbLogController
Returns responses for dblog routes.

Namespace

Drupal\dblog\Controller

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public function topLogMessages($type) {
  $header = array(
    array('data' => $this->t('Count'), 'field' => 'count', 'sort' => 'desc'),
    array('data' => $this->t('Message'), 'field' => 'message'),
  );
 
  $count_query = $this->database->select('watchdog');
  $count_query->addExpression('COUNT(DISTINCT(message))');
  $count_query->condition('type', $type);
 
  $query = $this->database->select('watchdog', 'w')
    ->extend('\Drupal\Core\Database\Query\PagerSelectExtender')
    ->extend('\Drupal\Core\Database\Query\TableSortExtender');
  $query->addExpression('COUNT(wid)', 'count');
  $query = $query
  ->fields('w', array('message', 'variables'))
    ->condition('w.type', $type)
    ->groupBy('message')
    ->groupBy('variables')
    ->limit(30)
    ->orderByHeader($header);
  $query->setCountQuery($count_query);
  $result = $query->execute();
 
  $rows = array();
  foreach ($result as $dblog) {
    if ($message = $this->formatMessage($dblog)) {
      $rows[] = array($dblog->count, $message);
    }
  }
 
  $build['dblog_top_table'] = array(
    '#type' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#empty' => $this->t('No log messages available.'),
    '#attached' => array(
      'library' => array('dblog/drupal.dblog'),
    ),
  );
  $build['dblog_top_pager'] = array('#type' => 'pager');
 
  return $build;
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.