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
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;
}
Please login to continue.