PHP每小时读取1个小时前的日志写入数据库中删除数据库中两天前的日志就是数据库里只保留最近两天的日志

PHP 如何每个小时记录一个日志文件,每小时读取1个小时前的程序日志写入数据库中,并删除数据库中两天前的日志,也就是数据库里只保留最近两天的日志记录。用哪个函数度比较好。有什么好的处理方法或者案例

如果你是两天前的日志文件完全不想要了可以每隔一小时生成一个日志文件,并把两天前的日志文件删除掉。用filectime函数可以判断文件时间。如果你想隔一个小时生成一个文件,可以给日志起一个通用的名字,例如:errorlog_当天的日期.log,然后每次写日志时判断这个文件的时间是不是1小时前的,是1小时前的就把这个文件改个名,不是就继续写入。
然后用file函数获取到你想要的时间的日志文件的内容做你需要的处理。

如果两天前的日志文件还想要,那么你就要先用file函数取得日志文件的内容,通过日志内容的里的时间和现在时间的比对取得你要的数据并处理。

把你对日志文件的处理些到php文件里。
如果是linux服务器,建议使用 crontab定时执行这个写好的PHP文件
如果是windows服务器,建议使用内置的 计划任务功能定时执行这个写好的PHP文件追问

你第一段说的做法我觉得不太好。
如果是一天一个文件夹,下面每小时一个日志文件,同时每小时运行定时任务,去获取当前小时的文件的内容,这样会不会有遗漏呢

追答

我不是让你获取当前小时的文件内容,而是获取你想要的时间的文件的内容。
你每次写入数据的时候肯定会有个更新时间,每次要读取日志文件内容的时候,把数据库中最后一条的时间取出来,凡是日志文件的时间大于这个时间的内容就是你想要的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-19
奇怪的需求。。 这样你只保留了最近两天的日志而已。。 如果你的系统给攻击或者有什么突发事件,你的日志文件就帮不了你的忙了。。

写条script 执行你要的设置

如果是linux服务器,建议使用 crontab 或者 supervisor
如果是windows服务器,建议使用内置的 计划任务功能追问

我取的最近两天的日志是放到数据库中,有别的用处,之前的日志还是保留的

第2个回答  2014-09-19
如果是linux服务器,建议使用 crontab
如果是windows服务器,建议使用内置的 计划任务功能追问

我的问题不在于如何定时,而是用php来实现这个处理

追答

fwrite 写文件
file 读文件
mysql 函数操作数据库
保留两天前的日志,写sql实现。

追问

如何一个小时记录一个日志文件,每小时执行一段程序读刚才写下的日志,更新到数据库中又如何删除掉两天前的日志

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网