Logging should obey error_reporting() setting
If the php error level is not included in the current
error_reporting() setting, we should not log it.
Also, the log_threshold check is redundant, it's
already taken care of by the write_log() method.
diff --git a/system/core/Common.php b/system/core/Common.php
index 57374b0..cb99d05 100644
--- a/system/core/Common.php
+++ b/system/core/Common.php
@@ -524,21 +524,20 @@
{
$_error =& load_class('Exceptions', 'core');
- // Should we display the error? We'll get the current error_reporting
+ // Should we ignore the error? We'll get the current error_reporting
// level and add its bits with the severity bits to find out.
- // And respect display_errors
- if (($severity & error_reporting()) === $severity && (bool) ini_get('display_errors') === TRUE)
+ if (($severity & error_reporting()) !== $severity)
+ {
+ return;
+ }
+
+ // Should we display the error?
+ if ((bool) ini_get('display_errors') === TRUE)
{
$_error->show_php_error($severity, $message, $filepath, $line);
}
- // Should we log the error? No? We're done...
- if (config_item('log_threshold') === 0)
- {
- return;
- }
-
- $_error->log_exception($severity, $message, $filepath, $line);
+ $_error->log_exception($severity, $message, $filepath, $line);
}
}