我开发一个脚本来阅读和搜索日志文件在工作中的大系统。 它目前是这样工作的:阅读活动日志文件,而不需要一个临时文件
- 用户定义的搜索参数
- PHP使用了shell_exec(“TAC LOGFILE.LOG> tmpfile.log”)来复制日志文件(和反向线)到一个临时文件
- PHP fopen()函数的临时文件
- PHP读取通过文件的每一行,并应用搜索参数
- PHP删除#做出的临时文件2
我决定采用这种方法,因为日志文件每隔几秒就写入一次,我需要向后读取日志文件。
我的问题是,第2步需要很长的时间,当日志文件> 300MB,并且每天的日志文件很容易500MB,所以搜索这么多的数据实在是费时。
我有几个问题:)上的活动日志文件
- 我可以简单地运行的fopen(?
- 它可能会导致日志文件的损坏,如果我只是读它,而其他脚本编写呢?
- 将它减慢脚本写入日志文件,如果我在同一时间读它?
- 我可以让PHP读取文件的每一行而不是转发吗?
我希望是有道理的......
真棒,感谢您回答我的问题:) 使用grep是我想到的一种可能性,但我的搜索很复杂,我还没有查看过grep搜索的具体情况。 我正在考虑自动反转所有日志文件的顺序栏中活动的一个。它应该使搜索档案更快。 – 2010-06-28 10:38:02