Suppress watchdog a specific log message
There is no special hook for this. The easiest way to fix this in Drupal 8 is overriding logger.dblog service.

According to the official documentation you need implement a class extending ServiceProviderBase and the alter() method as shown below.

&lt;?php

namespace Drupal\example;

use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\DependencyInjection\ServiceProviderBase;

/**
 * Modifies the logger.dblog service.
 */
class ExampleServiceProvider extends ServiceProviderBase {

  /**
   * {@inheritdoc}
   */
  public function alter(ContainerBuilder $container) {
    // Overrides logger.dblog service to exclude some unwanted log messages.
    $container-&gt;getDefinition('logger.dblog')
      -&gt;setClass('Drupal\example\Logger\DbLog');
  }

}


The logger itself is extremely simple.

&lt;?php

namespace Drupal\example\Logger;

use Drupal\dblog\Logger\DbLog as BaseDbLog;

/**
 * Logs events in the watchdog database table.
 */
class DbLog extends BaseDbLog {

  /**
   * {@inheritdoc}
   */
  public function log($level, $message, array $context = array()) {
    if ($message != t('Cron run completed.')) {
      parent::log($level, $message, $context);
    }
  }

}