}
}
+ // Use the custom fatalErrorHandler if defined
+ if ($config->fatalErrorHandler && function_exists($config->fatalErrorHandler)) {
+ $name = $config->fatalErrorHandler;
+ $vars = [
+ 'pearError' => $pearError,
+ ];
+ $ret = $name($vars);
+ if ($ret) {
+ // the call has been successfully handled so we just exit
+ self::abend(CRM_Core_Error::FATAL_ERROR);
+ }
+ }
+
$template->assign_by_ref('error', $error);
$errorDetails = CRM_Core_Error::debug('', $error, FALSE);
$template->assign_by_ref('errorDetails', $errorDetails);
exit;
}
$runOnce = TRUE;
- self::abend(1);
+ self::abend(CRM_Core_Error::FATAL_ERROR);
}
/**
}
$file_log->close();
+ // Use the custom fatalErrorHandler if defined
+ if (in_array($priority, [PEAR_LOG_EMERG, PEAR_LOG_ALERT, PEAR_LOG_CRIT, PEAR_LOG_ERR])) {
+ if ($config->fatalErrorHandler && function_exists($config->fatalErrorHandler)) {
+ $name = $config->fatalErrorHandler;
+ $vars = [
+ 'debugLogMessage' => $message,
+ 'priority' => $priority,
+ ];
+ $name($vars);
+ }
+ }
+
if (!isset(\Civi::$statics[__CLASS__]['userFrameworkLogging'])) {
// Set it to FALSE first & then try to set it. This is to prevent a loop as calling
// $config->userFrameworkLogging can trigger DB queries & under log mode this