PHP 函数error_log() 安全使用吗?
2022-08-30 22:20:10
我想确保使用自定义PHP错误处理程序不会引入竞争条件。为此,我想知道我是否可以依赖error_log(),或者我是否需要使用其他文件锁定方法来确保正确记录错误。
默认的 PHP 错误处理程序如何工作?它是否安全,不受竞争条件的影响?
例如,我是否必须锁定文件(这可能会导致在此简单版本中丢失错误)
function log_error($message)
{
if(! $fp = @fopen('/path/to/error.log', 'a'))
{
return FALSE;
}
flock($fp, LOCK_EX);
fwrite($fp, $message);
flock($fp, LOCK_UN);
fclose($fp);
return TRUE;
}
或者我可以打电话给error_log?
error_log($message, 0);