我想创建一个将字符串写入日志文件的简单方法,并且由于该文件可能同时由不同的Web服务器进程写入,因此原子性需要文件锁定。
e.g。
function log_to_file($message)
{
$fp = fopen("/tmp/lock.txt", "r+");
while (!flock($fp, LOCK_EX)) {
sleep(1); // Sleep for 1 second and try again
}
fwrite($fp, $message);
fflush($fp);
flock($fp, LOCK_UN); // release the lock
fclose($fp);
}
上述代码有问题吗?
答案 0 :(得分:0)
我正在使用error_log('我的日志消息',3,$ logFile);出于同样的目的。我在偷看时间内每秒达到300次写入请求,大约两个月,并且文件锁定仍然没有任何问题。