如何在单个文件上处理大量写入请求?

时间:2017-01-15 06:28:54

标签: php file logging

好吧,在一个项目中,我必须记录用户的所有操作,包括:db查询,对服务的请求,...在日志文件中(NOT数据库)。这是一个创建日志的类。尽管所有操作都来自createLog方法(在logClass中),但由于Readng和写入文件的限制,大多数操作都无法记录。

有没有办法处理这个问题,比如队列实现还是什么?处理这些事情的最佳方法是什么?

PS:我已经尝试了flock()和......

感谢。

1 个答案:

答案 0 :(得分:3)

我对PHP知之甚少,但总的来说,如果要生成大量日志,则不应直接将它们写入文件(特别是如果从多个进程/线程并发写入)。

作为替代方案,您可以使用syslog。大多数编程语言都可以登录到syslog而不是文件。 syslog程序(例如https://syslog-ng.org/)可以将您的日志输出为单个(或基于您提供的配置的多个)文件。