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

时间:2017-05-03 12:06:25

标签: php drupal 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格式显示。

1 个答案:

答案 0 :(得分:0)

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