function purge_logging in Purge 6
Same name and namespace in other branches
- 7.2 includes/purge.inc \purge_logging()
- 7 purge.inc \purge_logging()
Logs successful purges and errors to the watchdog.
Parameters
$purge_request_results: array of url with their http status code
1 call to purge_logging()
- purge_expire_cache in ./
purge.module - Implementation of hook_expire_cache().
File
- ./
purge.inc, line 155 - Contains the main purging functionality and error handling
Code
function purge_logging($purge_request_results) {
$purge_success = 0;
$purge_blocking = array();
$purge_success_log = array();
$purge_error_log = array();
foreach ($purge_request_results as $purge_request_result) {
switch ($purge_request_result['http_code']) {
// First check if everything went ok.
case 200:
$purge_success_log[] = $purge_request_result['purge_url'] . ' on ' . $purge_request_result['proxy_url'] . ' Ok';
$purge_success++;
break;
// Redirects are acceptable
case 301:
$purge_success_log[] = $purge_request_result['purge_url'] . ' on ' . $purge_request_result['proxy_url'] . ' Permanent Redirect';
$purge_success++;
break;
case 302:
$purge_success_log[] = $purge_request_result['purge_url'] . ' on ' . $purge_request_result['proxy_url'] . ' Temporary Redirect';
$purge_success++;
break;
// Notice if the request was not found in the proxy cache
case 404:
$purge_success_log[] = $purge_request_result['purge_url'] . ' on ' . $purge_request_result['proxy_url'] . ' Not Found';
$purge_success++;
break;
// Collect all proxy hosts that are blocking the url requests
case 405:
$purge_error_log[] = $purge_request_result['purge_url'] . ' on ' . $purge_request_result['proxy_url'] . ' Forbidden';
$purge_blocking[] = parse_url($purge_request_result['purge_url'], PHP_URL_HOST);
break;
// Collect all urls and their http error codes
default:
$purge_error_log[] = $purge_request_result['purge_url'] . ' on ' . $purge_request_result['proxy_url'] . ' ' . $purge_request_result['http_code'];
break;
}
}
// Watchdog barking
$purge_errors = count($purge_request_results) - $purge_success;
// Just a notice when all is ok
if ($purge_errors === 0) {
if ($purge_success === 1) {
watchdog('purge', '1 URL has been successfully purged from the reverse proxy caches: !$purge_success_log', array(
'!$purge_success_log' => purge_print_r($purge_success_log),
));
}
else {
watchdog('purge', '!purge_success_count URLs have been successfully purged from the reverse proxy caches: !$purge_success_log', array(
'!purge_success_count' => $purge_success,
'!$purge_success_log' => purge_print_r($purge_success_log),
));
}
}
else {
// Report all urls with errors
if ($purge_errors === 1) {
watchdog('purge', '1 error has been encountered when purging URLs !$purge_error_log', array(
'!$purge_error_log' => purge_print_r($purge_error_log),
), $severity = WATCHDOG_ERROR);
}
else {
watchdog('purge', '!purge_errors_count errors have been encountered when purging these URLs. !$purge_error_log', array(
'!purge_errors_count' => $purge_errors,
'!$purge_error_log' => purge_print_r($purge_error_log),
), $severity = WATCHDOG_ERROR);
}
// Report on proxy servers that block the purge requests.
if (!empty($purge_blocking)) {
foreach ($purge_blocking as $purge_blocking_server) {
watchdog('purge', 'The proxy server host %blocking_server is blocking purge requests. Please review the proxy configuration.', array(
'%blocking_server' => $purge_blocking_server,
), $severity = WATCHDOG_ERROR);
}
}
}
}