• 0
  • 0

定期清除日志代码

2019-05-28 71 0 admin 所属分类:PHP 记录

平时在开发的时候为了方便调错,我们都会把请求的原生数据记录在日志中,考虑到服务器的存储空间有限,我们还需要对日志做切割。通常的做法就是以天位单位按照年月日的格式拆分日志。这样的好处是写日志的时候不会导致文件过于臃肿,影响服务器性能。二来是排错的时候心里有个谱,可以快速筛选是某天的日志进行分析。

这边是每隔一定时间删除老旧日志。

代码如下 

$dirs = ['notify','push'];

$date = date('Ymd',(TIMESTAMP - 10 * 86400)); //删除10天之前的日志记录
foreach ($dirs as $k => $v) {
    $dir = './'.$v;
    $return = scandir($dir);

    foreach ( $return as $kk => $vv) {
        if ($vv == '.' || $vv == '..') {
            continue;
        }

        if (preg_match("/(\d+)/", $vv, $data)) {
            if ($data[1]<=$date) {
                $file = $dir . '/' . $vv;
                if (file_exists($file)) {
                    unlink($file);
                }
            }
        }
    }
}


 而且日志也需要按照目录归类,有些是推送日志,有些是回调通知日志,都需要区分好。

在Linux服务器下弄一个计划任务,每天执行一次。

返回顶部