diff --git a/modules/dblog/dblog.admin.inc b/modules/dblog/dblog.admin.inc
index 0655e75..893b45f 100644
--- a/modules/dblog/dblog.admin.inc
+++ b/modules/dblog/dblog.admin.inc
@@ -27,6 +27,7 @@ function dblog_overview() {
     WATCHDOG_EMERGENCY => 'dblog-emerg',
   );
 
+  $build['dblog_settings_form'] = drupal_get_form('dblog_settings_form');
   $build['dblog_filter_form'] = drupal_get_form('dblog_filter_form');
   $build['dblog_clear_log_form'] = drupal_get_form('dblog_clear_log_form');
 
@@ -274,6 +275,50 @@ function theme_dblog_message($variables) {
 }
 
 /**
+ * Return form for dblog administration settings.
+ *
+ * @ingroup forms
+ * @see dblog_settings_form_submit()
+ */
+function dblog_settings_form($form) {
+	$form['dblog_settings'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Reporting Level'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+	
+	$form['dblog_settings']['dblog_levels'] = array(
+	    '#type' => 'checkboxes',
+	    '#title' => t('Watchdog reporting level'),
+	    '#default_value' => variable_get('dblog_levels', watchdog_severity_levels()),
+	    '#options' => watchdog_severity_levels(),
+	    '#description' => t('Severity levels of information that will be collected by dblog. Used to reduce database insertions in production environments.'),
+	);
+	
+	$form['dblog_settings']['actions']['submit'] = array(
+			'#type' => 'submit',
+			'#value' => t('Save settings'),
+	);
+
+	return $form;
+}
+
+/**
+ * Process result from dblog administration settings form.
+ */
+function dblog_settings_form_submit($form, &$form_state) {
+	$op = $form_state['values']['op'];
+	$filters = dblog_filters();
+	switch ($op) {
+		case t('Save settings'):
+			variable_set('dblog_levels',$form_state['values']['dblog_levels']);
+			break;
+	}
+	return 'admin/reports/dblog';
+}
+
+/**
  * Return form for dblog administration filters.
  *
  * @ingroup forms
diff --git a/modules/dblog/dblog.module b/modules/dblog/dblog.module
index d831548..7d6ae70 100644
--- a/modules/dblog/dblog.module
+++ b/modules/dblog/dblog.module
@@ -138,20 +138,23 @@ function _dblog_get_message_types() {
  * Note some values may be truncated for database column size restrictions.
  */
 function dblog_watchdog(array $log_entry) {
-  Database::getConnection('default', 'default')->insert('watchdog')
-    ->fields(array(
-      'uid' => $log_entry['uid'],
-      'type' => substr($log_entry['type'], 0, 64),
-      'message' => $log_entry['message'],
-      'variables' => serialize($log_entry['variables']),
-      'severity' => $log_entry['severity'],
-      'link' => substr($log_entry['link'], 0, 255),
-      'location' => $log_entry['request_uri'],
-      'referer' => $log_entry['referer'],
-      'hostname' => substr($log_entry['ip'], 0, 128),
-      'timestamp' => $log_entry['timestamp'],
-    ))
-    ->execute();
+  $levels = variable_get('dblog_levels', watchdog_severity_levels());
+  if (empty($levels)===FALSE && in_array($log_entry['severity'],$levels)===TRUE) {
+	  Database::getConnection('default', 'default')->insert('watchdog')
+	    ->fields(array(
+	      'uid' => $log_entry['uid'],
+	      'type' => substr($log_entry['type'], 0, 64),
+	      'message' => $log_entry['message'],
+	      'variables' => serialize($log_entry['variables']),
+	      'severity' => $log_entry['severity'],
+	      'link' => substr($log_entry['link'], 0, 255),
+	      'location' => $log_entry['request_uri'],
+	      'referer' => $log_entry['referer'],
+	      'hostname' => substr($log_entry['ip'], 0, 128),
+	      'timestamp' => $log_entry['timestamp'],
+	    ))
+	    ->execute();
+  }
 }
 
 /**
