tp框架定時清除runtime下的log日志


<?php

namespace app\check;

use think\Env;

class Cs extends BaseController
{
     //定期清除tp生成的日志
    public function clearCacheLog()
    {
        $logFilePath = LOG_PATH;
        
        $size = bcdiv($this->dirsize($logFilePath), 1048576, 1);

        //大於1M清除
        if ($size > 1){
            $this->delLog(LOG_PATH);
        }
    }

    //檢測文件夾大小
    private function dirsize($dir)
    {
        @$dh = opendir($dir);
        $size = 0;
        while($file = @readdir($dh)){
            if($file!="." && $file!=".."){
                $path = $dir."/".$file;
                if(is_dir($path)){
                    $size += self::dirsize($path);
                }elseif(is_file($path)){
                    $size += filesize($path);
                }
            }
        }
        @closedir($dh);
        return $size;
    }

    //刪除文件
    private function delLog($path)
    {
        //如果是目錄則繼續
        if(is_dir($path)){
            //掃描一個文件夾內的所有文件夾和文件並返回數組
            $p = scandir($path);
            foreach($p as $val){
                //排除目錄中的.和..
                if($val !="." && $val !=".."){
                    //如果是目錄則遞歸子目錄,繼續操作
                    if(is_dir($path.$val)){
                        //子目錄中操作刪除文件夾和文件
                        self::delLog($path.$val.'/');
                        //目錄清空后刪除空文件夾
                        @rmdir($path.$val.'/');
                    }else{
                        //如果是文件直接刪除
                        unlink($path.$val);
                    }
                }
            }
        }
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM