2012-01-23 44 views
0

我有一个网络服务器,承载几个PHP应用程序,我想知道是否有可能遇到写入冲突下正常/通信量大的时候写入日志细节到文本文件。在我的情况下,所有使用相同日志文件的应用程序如果可能性很高,请告诉我们如何减少或避免这种情况。写入日志文件是否会导致写入冲突?

如果您打算投票,请说明原因。

回答

3

为避免出现任何问题,您需要锁定文件以便一次只有一个应用程序正在写入该文件。没有例外 - 你需要锁定。

如果你真的加载的应用程序(S) - 你可以选择一些非阻断日志守护程序或存储

+0

只是好奇,我想至少Apache2的,它服务于一个在一个时间?如果第一个用户处于失速状态(长时间运行),则第二个用户在失速期间的访问也会受到影响,直到第一个用户被释放。尽管如此,我并不反对你的发言。 –

+0

@Matt Lo:apache可以处理大量的同时请求,否则没有人会使用它。 – zerkms

+1

我完全同意这个答案。这就是说,[这篇文章](http://stackoverflow.com/questions/3832646/what-happens-in-nfs-if-2-or-more-servers-try-to-write-the-same-file-同时)提到了如果文件以追加模式打开的可能性,则不需要锁定。然而,锁定仍然是一个好主意(牺牲一点小小的性能)。 –