diff --git a/mollom.admin.inc b/mollom.admin.inc index ae8d9b0..7b558ba 100644 --- a/mollom.admin.inc +++ b/mollom.admin.inc @@ -809,6 +809,15 @@ function mollom_admin_settings($form, &$form_state) { '#description' => t('Submitting "ham", "unsure", or "spam" on a protected form will trigger the corresponding behavior. Image CAPTCHAs will only respond to "correct" and audio CAPTCHAs only respond to "demo". This option should be disabled in production environments.'), ); + $form['mollom_log_minimum_severity'] = array( + '#type' => 'checkbox', + '#title' => t('Only log warnings and errors'), + '#return_value' => WATCHDOG_WARNING, + '#default_value' => variable_get('mollom_log_minimum_severity', WATCHDOG_WARNING), + '#description' => t('Disable to see all Mollom interactions in log messages.'), + ); + $form['#submit'][] = 'mollom_admin_settings_submit'; + return system_settings_form($form); } @@ -830,6 +839,17 @@ function mollom_admin_settings_validate_key($element, &$form_state) { } /** + * Form submission handler for global settings form. + */ +function mollom_admin_settings_submit($form, &$form_state) { + // If the minimum log severity checkbox was disabled (no input), convert + // 0 into WATCHDOG_DEBUG. + if (!isset($form_state['input']['mollom_log_minimum_severity'])) { + $form_state['values']['mollom_log_minimum_severity'] = WATCHDOG_DEBUG; + } +} + +/** * Menu callback; Displays the administrative reports page. */ function mollom_reports_page($form, &$form_state) { diff --git a/mollom.module b/mollom.module index c9a27d4..420d9dd 100644 --- a/mollom.module +++ b/mollom.module @@ -2249,8 +2249,11 @@ function mollom_log_write() { if (empty($log)) { return; } - list($message, $arguments) = _mollom_format_log($log); - watchdog('mollom', $message, $arguments, $log['severity']); + // Only log if severity if it meets configured minimum severity. + if ($log['severity'] <= variable_get('mollom_log_minimum_severity', WATCHDOG_WARNING)) { + list($message, $arguments) = _mollom_format_log($log); + watchdog('mollom', $message, $arguments, $log['severity']); + } } /**