diff --git a/core/modules/dblog/src/Controller/DbLogController.php b/core/modules/dblog/src/Controller/DbLogController.php
index 10e2af8c56..fe99722578 100644
--- a/core/modules/dblog/src/Controller/DbLogController.php
+++ b/core/modules/dblog/src/Controller/DbLogController.php
@@ -302,7 +302,9 @@ public function eventDetails($event_id) {
    *   An associative array with keys 'where' and 'args'.
    */
   protected function buildFilterQuery() {
-    if (empty($_SESSION['dblog_overview_filter'])) {
+    $config = $this->config('dblog.settings');
+    $overview_filter = $config->get('overview_filter');
+    if (empty($overview_filter)) {
       return;
     }
 
@@ -312,7 +314,7 @@ protected function buildFilterQuery() {
 
     // Build query.
     $where = $args = [];
-    foreach ($_SESSION['dblog_overview_filter'] as $key => $filter) {
+    foreach ($overview_filter as $key => $filter) {
       $filter_where = [];
       foreach ($filter as $value) {
         $filter_where[] = $filters[$key]['where'];
diff --git a/core/modules/dblog/src/Form/DblogClearLogConfirmForm.php b/core/modules/dblog/src/Form/DblogClearLogConfirmForm.php
index 0f420f0568..10dbfaf37a 100644
--- a/core/modules/dblog/src/Form/DblogClearLogConfirmForm.php
+++ b/core/modules/dblog/src/Form/DblogClearLogConfirmForm.php
@@ -64,7 +64,10 @@ public function getCancelUrl() {
    * {@inheritdoc}
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
-    $_SESSION['dblog_overview_filter'] = [];
+    $config = $this->config('dblog.settings');
+    $config
+      ->set('overview_filter', [])
+      ->save();
     $this->connection->truncate('watchdog')->execute();
     drupal_set_message($this->t('Database log cleared.'));
     $form_state->setRedirectUrl($this->getCancelUrl());
diff --git a/core/modules/dblog/src/Form/DblogFilterForm.php b/core/modules/dblog/src/Form/DblogFilterForm.php
index c8de0fc68b..d14c4b2544 100644
--- a/core/modules/dblog/src/Form/DblogFilterForm.php
+++ b/core/modules/dblog/src/Form/DblogFilterForm.php
@@ -2,13 +2,13 @@
 
 namespace Drupal\dblog\Form;
 
-use Drupal\Core\Form\FormBase;
+use Drupal\Core\Form\ConfigFormBase;
 use Drupal\Core\Form\FormStateInterface;
 
 /**
  * Provides the database logging filter form.
  */
-class DblogFilterForm extends FormBase {
+class DblogFilterForm extends ConfigFormBase {
 
   /**
    * {@inheritdoc}
@@ -20,7 +20,16 @@ public function getFormId() {
   /**
    * {@inheritdoc}
    */
+  protected function getEditableConfigNames() {
+    return ['dblog.settings'];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function buildForm(array $form, FormStateInterface $form_state) {
+    $config = $this->config('dblog.settings');
+    $overview_filter = $config->get('overview_filter');
     $filters = dblog_filters();
 
     $form['filters'] = [
@@ -36,8 +45,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
         '#size' => 8,
         '#options' => $filter['options'],
       ];
-      if (!empty($_SESSION['dblog_overview_filter'][$key])) {
-        $form['filters']['status'][$key]['#default_value'] = $_SESSION['dblog_overview_filter'][$key];
+      if (!empty($overview_filter[$key])) {
+        $form['filters']['status'][$key]['#default_value'] = $overview_filter[$key];
       }
     }
 
@@ -49,7 +58,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#type' => 'submit',
       '#value' => $this->t('Filter'),
     ];
-    if (!empty($_SESSION['dblog_overview_filter'])) {
+    if (!empty($overview_filter)) {
       $form['filters']['actions']['reset'] = [
         '#type' => 'submit',
         '#value' => $this->t('Reset'),
@@ -74,11 +83,15 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
     $filters = dblog_filters();
-    foreach ($filters as $name => $filter) {
+    $config = $this->config('dblog.settings');
+    $overview_filter = $config->get('overview_filter');
+    foreach(array_keys($filters) as $name) {
       if ($form_state->hasValue($name)) {
-        $_SESSION['dblog_overview_filter'][$name] = $form_state->getValue($name);
+        $overview_filter[$name] = $form_state->getValue($name);
       }
     }
+    $config->set('overview_filter', $overview_filter);
+    $config->save();
   }
 
   /**
@@ -90,7 +103,9 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
    *   The current state of the form.
    */
   public function resetForm(array &$form, FormStateInterface $form_state) {
-    $_SESSION['dblog_overview_filter'] = [];
+    $this->config('dblog.settings')
+      ->set('overview_filter', [])
+      ->save();
   }
 
 }
diff --git a/core/modules/migrate_drupal_ui/src/Controller/MigrateController.php b/core/modules/migrate_drupal_ui/src/Controller/MigrateController.php
index 2054766a13..d0019749bd 100644
--- a/core/modules/migrate_drupal_ui/src/Controller/MigrateController.php
+++ b/core/modules/migrate_drupal_ui/src/Controller/MigrateController.php
@@ -16,8 +16,18 @@ class MigrateController extends ControllerBase {
    *   A redirect response object that may be returned by the controller.
    */
   public function showLog() {
-    $_SESSION['dblog_overview_filter'] = [];
-    $_SESSION['dblog_overview_filter']['type'] = ['migrate_drupal_ui' => 'migrate_drupal_ui'];
+    $config = $this->container()
+      ->get('config.factory')
+      ->getEditable('dblog.settings');
+
+    $filter = [
+      'type' => ['migrate_drupal_ui' => 'migrate_drupal_ui'],
+    ];
+
+    $config
+      ->set('overview_filter', $filter)
+      ->save();
+
     return $this->redirect('dblog.overview');
   }
 
