平时在开发的时候为了方便调错,我们都会把请求的原生数据记录在日志中,考虑到服务器的存储空间有限,我们还需要对日志做切割。通常的做法就是以天位单位按照年月日的格式拆分日志。这样的好处是写日志的时候不会导致文件过于臃肿,影响服务器性能。二来是排错的时候心里有个谱,可以快速筛选是某天的日志进行分析。
这边是每隔一定时间删除老旧日志。
代码如下
$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服务器下弄一个计划任务,每天执行一次。