您当前的位置: 首页 >  php

少林码僧

暂无认证

  • 3浏览

    0关注

    317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

定期进行日志整理的php函数

少林码僧 发布时间:2017-10-26 18:33:20 ,浏览量:3

public static function logAutoClean($msg = "", $fileName = 'common',$path='returnlog',$expireDays=10,$timeFlag=1) {
        $fileName = str_replace('_','',$fileName);
        $time = date('Y-m-d H:i:s');
        $basePath = str_replace('\\','/',storage_path()) . '/logs/'.$path;
        if(!is_dir($basePath)){
            mkdir($basePath,0777,true);
        }

        //日志清理(5天一次)
        if(!file_exists($basePath.'/CLEANED') || (time()-filemtime($basePath.'/CLEANED'))/86400>5){
            $bakPath = str_replace('\\','/',storage_path()) . '/logs/bak';
            is_dir($bakPath) || mkdir($bakPath,0777,true);
            $handler = opendir($basePath);
            while( ($filename = readdir($handler)) !== false ) {

                if($filename != "." && $filename != ".." && is_file($filename)){

                    $filename1 = str_replace('.log','',$filename);
                    $fileArr = explode('_',$filename1);
                    if(isset($fileArr[1]) && isset($fileArr[2]) && date('Ymd')-$fileArr[1]>=$fileArr[2]){
                        //备份过期日志
                        rename($basePath.'/'.$filename,$bakPath.'/'.$filename);
                        //删除过期日志
                        //unlink($basePath.'/'.$filename);
                    }
                }
            }

            closedir($handler);
            file_put_contents($basePath.'/CLEANED','');//刷新文件的mtime
        }
        //写日志
        if($timeFlag){
            file_put_contents($basePath . '/' . $fileName . '_' .date('Ymd').'_'.$expireDays . '.log', $time . "\n" . $msg . PHP_EOL, FILE_APPEND);
        }else{
            file_put_contents($basePath . '/' . $fileName . '_' .date('Ymd').'_'.$expireDays . '.log', $msg . PHP_EOL, FILE_APPEND);
        }


    }
关注
打赏
1661398670
查看更多评论
立即登录/注册

微信扫码登录

0.0375s