一般来说获取日志文件内容即可,需要解决的问题:
1.日志文件是否有系统独占因素;
2.日志文件目录的权限;
3.读取到日志文件后,是否需要对应的解码或者转码问题。
如果你是两天前的日志文件完全不想要了可以每隔一小时生成一个日志文件,并把两天前的日志文件删除掉。用filectime函数可以判断文件时间。如果你想隔一个小时生成一个文件,可以给日志起一个通用的名字,例如:errorlog_当天的日期.log,然后每次写日志时判断这个文件的时间是不是1小时前的,是1小时前的就把这个文件改个名,不是就继续写入。然后用file函数获取到你想要的时间的日志文件的内容做你需要的处理。
如果两天前的日志文件还想要,那么你就要先用file函数取得日志文件的内容,通过日志内容的里的时间和现在时间的比对取得你要的数据并处理。
把你对日志文件的处理些到php文件里。
如果是linux服务器,建议使用 crontab定时执行这个写好的PHP文件
如果是windows服务器,建议使用内置的 计划任务功能定时执行这个写好的PHP文件
在php编程中,对于一些访问没有明显错误提示的php页面,可以通过error_log来做进一步的判定。但出于种种原因,有些服务器并没有开启PHP的error_log功能。
测试或其它需要时,可以打开一下,方法如下。
编辑php.ini,将log_errors设置为on:
log_errors = On
然后,重启apache即可。
如成功开启,就可以跟踪到对应的错误提示:
[Mon Sep 24 16:57:01 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:02 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:03 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:04 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line
另外,注意在Windows环境下,除了将log_errors设置为on外,还需要定义error_log的路径及文件名:
error_log = d:/temp/error.log
(此目录需要授予php标识用户的修改权限,否则日志文件无法生成)
IIS没有error_log的概念,所以需要另外定义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)