diff --git rules.module rules.module
index 438546f..196e752 100644
--- rules.module
+++ rules.module
@@ -909,7 +909,7 @@ function rules_page_build(&$page) {
     }
     unset($_SESSION['rules_debug']);
   }
-  if (variable_get('rules_debug', FALSE) || (user_access('administer rules') && RulesLog::logger()->hasErrors())) {
+  if (rules_show_debug_output()) {
     $logger = RulesLog::logger();
     $region = variable_get('rules_debug_region', 'help');
     if ($log = $logger->render()) {
@@ -923,10 +923,18 @@ function rules_page_build(&$page) {
 }
 
 /**
+ * Returns whether the debug log should be shown.
+ */
+function rules_show_debug_output() {
+  // For performance avoid unnecessary auto-loading of the RulesLog class.
+  return variable_get('rules_debug', FALSE) || (class_exists('RulesLog', FALSE) && RulesLog::logger()->hasErrors() && user_access('administer rules'));
+}
+
+/**
  * Implements hook_exit().
  */
 function rules_exit() {
-  if (variable_get('rules_debug', FALSE) || (user_access('administer rules') && RulesLog::logger()->hasErrors())) {
+  if (rules_show_debug_output()) {
     if ($log = RulesLog::logger()->render()) {
       // Keep the log in the session so we can show it on the next page.
       $_SESSION['rules_debug'][] = $log;
