如何禁用所有Drupal 7错误和异常处理程序



我想在Drupal网站的根部创建一个简单的PHP状态文件。该文件将由Nagios等监视系统调用。我想完全自定义输出,并在错误消息中添加一些其他详细信息(作为纯文本字符串(。

我尝试了以下代码:

define('DRUPAL_ROOT', __DIR__);
require_once realpath(DRUPAL_ROOT . '/includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
restore_exception_handler();
restore_error_handler();
function exception_handler($exception) {
  echo "Uncaught exception: " , $exception->getMessage(), "n";
}
set_exception_handler('exception_handler');
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
  echo "PHP Error: [$errno] $errstr<br />n";
  return true;
}
$old_error_handler = set_error_handler("myErrorHandler");
try {
  db_query('SELECT COUNT(nid) FROM {node}');
  echo 'ok';
}
catch (PDOException $e) {
  echo "Database problem";
}
catch (Exception $e) {
  echo "Unexecpted error: " . $e->getMessage();
}

但是,当我尝试禁用数据库(通过停止服务(时,Drupal自定义错误以HTML格式出现。

您必须转到admin/config/development/logging并检查选项None以隐藏错误

最新更新