php error_log 消息超时丢失

php error_log messages lost upon timeout

我正在尝试调试一个 php 脚本,它可能需要很长时间才能 运行,并且 return '504 网关超时'(运行 正在nginx with fastcgi-php5-fpm, 使用 ubuntu 官方包安装).

发生超时时 - php error_log 消息不会记录到 error.log 文件。

如何调试脚本 - 或者至少从脚本中获取任何日志?

我尝试调用 flush(),它只是将 stdout 刷新到客户端浏览器,而不是将 stdlog 刷新到日志文件。

演示情况的简单脚本:

error.php:

<?php
error_log("error occured!");
while(true){}
?>

编辑:

最后我使用

将日志写入文件
file_put_contents($filename, $message.'\n', FILE_APPEND);

但它没有解决问题 - 当 php 因超时而终止时,error_log 未写入。

最后我使用

将日志写入文件
file_put_contents($filename, $message.'\n', FILE_APPEND);

但它没有解决问题 - 当 php 因超时而终止时,error_log 未写入。