diff --git a/config/install/redis_watchdog.settings.yml b/config/install/redis_watchdog.settings.yml
index 3c0499a..d8f3ec3 100644
--- a/config/install/redis_watchdog.settings.yml
+++ b/config/install/redis_watchdog.settings.yml
@@ -2,3 +2,4 @@ prefix: 'watchdog'
 recentlimit: 200
 archivelimit: 5000
 pagelimit: 50
+severitylog: 7
diff --git a/src/Form/RedisWatchdogSettings.php b/src/Form/RedisWatchdogSettings.php
index 24f5d75..35728b6 100644
--- a/src/Form/RedisWatchdogSettings.php
+++ b/src/Form/RedisWatchdogSettings.php
@@ -72,6 +72,17 @@ class RedisWatchdogSettings extends ConfigFormBase {
       '#collapsed' => TRUE,
       '#default_value' => $config->get('archivelimit'),
     ];
+
+    $levels = RfcLogLevel::getLevels();
+
+    $form['watchdog']['redis_watchdogseveritylog'] = [
+      '#type' => 'select',
+      '#title' => t('Severity level to log from'),
+      '#options' => $levels,
+      '#default_value' => $config->get('severitylog'),
+      '#description' => t("Set a severity level to log from. Everything higher as the selected one will be logged. Lower won't be logged"),
+    ];
+
     return parent::buildForm($form, $form_state);
   }
 
@@ -87,8 +98,9 @@ class RedisWatchdogSettings extends ConfigFormBase {
       ->set('recentlimit', $form_state->getValue('redis_watchdogrecentlimit'))
       ->set('pagelimit', $form_state->getValue('redis_watchdogtypepagelimit'))
       ->set('archivelimit', $form_state->getValue('redis_watchdogarchivelimit'))
+      ->set('severitylog', $form_state->getValue('redis_watchdogseveritylog'))
       ->save();
     parent::submitForm($form, $form_state);
   }
 
-}
\ No newline at end of file
+}
diff --git a/src/Logger.php b/src/Logger.php
index d04ef2c..e6f57b1 100644
--- a/src/Logger.php
+++ b/src/Logger.php
@@ -207,51 +207,58 @@ class Logger extends AbstractLogger {
    * {@inheritDoc}
    */
   public function log($level, $message, array $context = []) {
-    // Remove any backtraces since they may contain an unserializable variable.
-    unset($context['backtrace']);
-
-    // Convert PSR3-style messages to SafeMarkup::format() style, so they can be
-    // translated too in runtime.
-    $message_placeholders = $this->parser->parseMessagePlaceholders($message, $context);
-
-    $wid = $this->getPushLogCounter();
-    $message = [
-      'wid' => $wid,
-      'uid' => $context['uid'],
-      'type' => Unicode::substr($context['channel'], 0, 64),
-      'message' => $message,
-      'variables' => serialize($message_placeholders),
-      'severity' => $level,
-      'link' => $context['link'],
-      'location' => $context['request_uri'],
-      'referer' => $context['referer'],
-      'hostname' => Unicode::substr($context['ip'], 0, 128),
-      'timestamp' => $context['timestamp'],
-    ];
-
-    // Record the type only if it doesn't already exist in the hash.
-    if (!$this->client->hExists($this->key . ':type', $message['type'])) {
-      // Store types in a separate hash table to build the filters menu.
-      $tid = $this->getTypeIDCounter();
-      $this->client->hSet($this->key . ':type', $message['type'], $tid);
-    }
-    else {
-      // Find the type ID already assigned.
-      $tid = $this->client->hGet($this->key . ':type', $message['type']);
-    }
-    $message = (object) $message;
+    $config = \Drupal::configFactory()->get('redis_watchdog.settings');
+    $severitylog = (int) $config->get('severitylog');
+
+    // Don't log if the severity level is 'lower' (the numer is higher) than the configured level.
+    if ($level <= $severitylog) {
+
+      // Remove any backtraces since they may contain an unserializable variable.
+      unset($context['backtrace']);
+
+      // Convert PSR3-style messages to SafeMarkup::format() style, so they can be
+      // translated too in runtime.
+      $message_placeholders = $this->parser->parseMessagePlaceholders($message, $context);
+
+      $wid = $this->getPushLogCounter();
+      $message = [
+        'wid' => $wid,
+        'uid' => $context['uid'],
+        'type' => Unicode::substr($context['channel'], 0, 64),
+        'message' => $message,
+        'variables' => serialize($message_placeholders),
+        'severity' => $level,
+        'link' => $context['link'],
+        'location' => $context['request_uri'],
+        'referer' => $context['referer'],
+        'hostname' => Unicode::substr($context['ip'], 0, 128),
+        'timestamp' => $context['timestamp'],
+      ];
+
+      // Record the type only if it doesn't already exist in the hash.
+      if (!$this->client->hExists($this->key . ':type', $message['type'])) {
+        // Store types in a separate hash table to build the filters menu.
+        $tid = $this->getTypeIDCounter();
+        $this->client->hSet($this->key . ':type', $message['type'], $tid);
+      }
+      else {
+        // Find the type ID already assigned.
+        $tid = $this->client->hGet($this->key . ':type', $message['type']);
+      }
+      $message = (object) $message;
 
-    // Push the log into the recent message list.
-    $this->client->rPush($this->key . ':recentlogs', serialize($message));
-    // Trim the recent message list to a set amount.
-    lTrim($this->key . ':recentlogs', $this->recent);
+      // Push the log into the recent message list.
+      $this->client->rPush($this->key . ':recentlogs', serialize($message));
+      // Trim the recent message list to a set amount.
+      lTrim($this->key . ':recentlogs', $this->recent);
 
-    // Push the log into the type message list.
-    $this->client->rPush($this->key . ':logs:' . $tid, serialize($message));
-    // Trim the list for the type messages according to the archive limit.
-    lTrim($this->key . ':logs:' . $tid, $this->archivelimit);
+      // Push the log into the type message list.
+      $this->client->rPush($this->key . ':logs:' . $tid, serialize($message));
+      // Trim the list for the type messages according to the archive limit.
+      lTrim($this->key . ':logs:' . $tid, $this->archivelimit);
 
-    $this->client->hSet($this->key, $wid, serialize($message));
+      $this->client->hSet($this->key, $wid, serialize($message));
+    }
   }
 
 
@@ -471,4 +478,4 @@ class Logger extends AbstractLogger {
       return FALSE;
     }
   }
-}
\ No newline at end of file
+}
