【发布时间】:2017-06-23 10:28:12
【问题描述】:
我希望在系统上拥有大量(例如百万)的日志文件。但是操作系统对打开的文件有限制。在单个文件夹中创建数百万个文件效率不高。
是否有现成的解决方案、框架或数据库可以高效地创建日志文件并将数据附加到日志文件?
我可以想象各种技术来优化大量日志文件的管理,但可能有一些开箱即用的方法。
例如我希望每天或当它达到 50MB 时重新创建该日志文件。必须存储旧的日志文件。例如上传到 Amazon S3。
我可以想象log database 将所有日志写入单个文件,但稍后处理它会将记录附加到数百万个文件中。
可能有适合此类任务的特殊文件系统。我什么也找不到。我相信可能会有解决方案。
PS 我希望在单个服务器上运行日志记录。我说 100 万是因为它超过了打开文件的默认限制。 100 万个文件 1MB 等于 1TB,可以存储在普通硬盘上。
在编写自己的解决方案之前,我会寻找现有的解决方案。我确信可能有一组日志服务器。我只是不知道如何搜索它们。
【问题讨论】:
-
为什么不直接使用像 log4J 这样的标准日志框架并创建一个简单的计划任务,该任务将每天移动一次日志文件,或者当文件大于 ... KB 时?
-
例如我有 100 万用户,今天将有 10.000 人登录。我希望每个用户有 1 个日志文件。如果有管理许多日志文件的解决方案,我不希望重新发明轮子。可能有打开文件的缓存,每 X 秒刷新打开文件的例程。
-
老实说,我认为为每个用户创建一个日志文件似乎是设计非常糟糕的结果——你真的应该考虑另一种方法 imo
标签: database logging frameworks