用php记录的文件是性能阻止器

时间:2019-03-13 11:14:51

标签: php logging file-put-contents

我现在在生产中的大多数功能中都有一段代码可以记录日志,我们看到每天有2gb的日志文件可以使用file_put_contents直接写入日志文件。我们推测随着此大小和流量的增加,file_get_contents将成为一个障碍点。 有人可以指导我在不阻止php的情况下登录物理文件的正确方法。任何其他方法都将受到欢迎。

file_put_contents(
            getcwd() . "debug_log.txt",
            "" . print_r($updateFieldsArray, true) . "\n",
            FILE_APPEND | LOCK_EX
        );

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您继续增长,将日志写入文件最终将成为瓶颈(仅仅因为任何事情都可能成为瓶颈),但是我们无法告诉您是否值得担心现在。您可以开始使用日志记录库,该库允许通过配置更改存储系统,例如monolog。

这些库在开发时也非常有用。您可以执行诸如启用调试输出之类的操作,但只能针对正在使用的应用程序的一部分进行操作。

您始终可以将日志移到更快的磁盘上,也可以停止记录不需要的信息。记录到文件的最棘手的问题是,当您拥有多台服务器时,您将做什么(请考虑负载平衡,高可用性)。现在,您必须阅读所有服务器上的日志以查找任何内容。

一种可能的解决方案是让所有服务器将其日志发送到集中式日志服务器。这可以通过syslog完成。或者,每个服务器可以具有一个程序,该程序在生成日志文件时读取日志文件,并将信息存储在中央数据库中。这就是logstash的作用。