/** * Generates an audit event log (to be sent later). * * @param integer $severity Importance of the event that will be reported, values from one to five. * @param string $location In which part of the system was the event triggered. * @param string $message The explanation of the event. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean TRUE if the event was logged in the monitoring service, FALSE otherwise. */ private static function report_event($severity = 0, $location = '', $message = '', $internal = false) { $user = wp_get_current_user(); $username = false; $current_time = date('Y-m-d H:i:s'); $remote_ip = self::get_remote_addr(); // Identify current user in session. if ($user instanceof WP_User && isset($user->user_login) && !empty($user->user_login)) { if ($user->user_login != $user->display_name) { $username = sprintf(" %s (%s),", $user->display_name, $user->user_login); } else { $username = sprintf(" %s,", $user->user_login); } } // Fixing severity value. $severity = (int) $severity; // Convert the severity number into a readable string. switch ($severity) { case 0: $severity_name = 'Debug'; break; case 1: $severity_name = 'Notice'; break; case 2: $severity_name = 'Info'; break; case 3: $severity_name = 'Warning'; break; case 4: $severity_name = 'Error'; break; case 5: $severity_name = 'Critical'; break; default: $severity_name = 'Info'; break; } // Mark the event as internal if necessary. if ($internal === true) { $severity_name = '@' . $severity_name; } // Clear event message. $message = strip_tags($message); $message = str_replace("\r", '', $message); $message = str_replace("\n", '', $message); $message = str_replace("\t", '', $message); $event_message = sprintf('%s:%s %s; %s', $severity_name, $username, $remote_ip, $message); return SucuriScanAPI::send_log($event_message); }