为什么我在PHP中看到error_log的输出而不是死?

时间:2012-03-18 16:32:09

标签: php

我注意到当我在php中发出 die 语句时,它的输出没有出现在错误日志中(如果我在它旁边放了一个error_log语句,它显示正常)。

我尝试了一切..以下是我为确保查看所有错误日志所做的设置:

的php.ini

error_reporting  =  E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
error_log = /Applications/XAMPP/logs/error_log

的httpd.conf:

php_value error_log /Applications/XAMPP/logs/error_log

我甚至在我的一个虚拟主机的根目录中设置了 .htaccess 文件:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag  log_errors on
php_value error_log /Applications/XAMPP/logs/error_log

但是每次我在代码中都达到这样的声明: 死(“我喜欢Prestashop”);

代码就死了而没有任何输出..任何想法的人?

我使用XAMPP在我的localhost上运行该站点,并且我运行的是Prestashop网站,使用PHP 5.3.1

2 个答案:

答案 0 :(得分:0)

调用die()不应在error_log中生成输出,因为调用它是错误。

它只是一个PHP构造(exit()的别名),它退出当前脚本并发送(可选)输出(或在CLI环境中使用时有用的错误代码)。

答案 1 :(得分:0)

die()或exit()对报告错误没有用。它们无法被捕获且无法记录。改为使用trigger_error()。