【发布时间】:2010-05-20 14:46:08
【问题描述】:
将 PHP 脚本作为 cron 作业运行时,错误处理程序可以工作,但 error_log() 函数不会写入磁盘。我将这些行包含在通过 cron 运行的脚本中,以防是因为 php.ini 值没有被拾取,但仍然没有输出到错误日志。
ini_set('display_startup_errors', 0);
ini_set('display_errors', 0);
ini_set('error_log', LOG_FOLDER . 'error_log.txt');
错误处理通常按预期工作,错误消息出现在我收到的 cron 输出电子邮件中。
作为一种解决方法,我可以通过检查 $_SERVER 来检测脚本作为 cron 作业运行,然后使用 fopen() 等写入错误日志。但我希望我能正确设置它使用 error_log()。
【问题讨论】:
-
您确定
LOG_FOLDER的定义正确吗?echo LOG_FOLDER . 'error_log.txt'产生了什么? -
你可以只重定向 cron 的输出。在 crontab 中:php yourcommand.php &> /path/to/error_log.txt
-
我已经打印出 LOG_FOLDER 并且它正在回显正确的路径,是的。