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