$result = $db->Execute('INSERT INTO '. $CFG->prefix .'log (time, userid, course, ip, module, cmid, action, url, info)
VALUES (' . "'$timenow', '$userid', '$courseid', '$REMOTE_ADDR', '$module', '$cm', '$action', '$url', '$info')");
+ // MDL-11893, alert $CFG->supportemail if insert into log failed
+ if (!result && $CFG->supportemail) {
+ $site = get_site();
+ $subject = 'Insert into log failed at your moodle site '.$site->fullname;
+ $message = 'Insert into log table failed at '.date('l dS \of F Y h:i:s A').'. It is possible that your disk is full.';
+
+ // email_to_user is not usable because email_to_user tries to write to the logs table, and this will get caught
+ // in an infinite loop, if disk is full
+ mail($CFG->supportemail, $subject, $message);
+ }
+
if (!$result and debugging()) {
echo '<p>Error: Could not insert a new entry to the Moodle log</p>'; // Don't throw an error
}