【问题标题】:How to handle a huge amount of requests to Write on a single file?如何处理在单个文件上写入的大量请求?
【发布时间】:2017-05-30 05:36:35
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • locks() 只适用于当前php进程,其他进程可以修改或删除被锁定的文件
  • @user1844933 锁是建议性的,但这看起来像是一个应该起作用的上下文,因为所有进程都会以相同的方式发出锁。

标签: php file logging


【解决方案1】:

我对 PHP 了解不多,但一般来说,如果您要生成大量日志,则不应将它们直接写入文件(特别是从多个进程/线程同时写入时)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多