php生成日志和自动删除日志

php生成日志和自动删除日志

**
 * 写日志
 * @param $data : 数据
 * @param $fileName : 写入哪个日志
 * 调用:logs('2423','signTurn');
 */
function logs($data = null,$fileName = null){
    if(is_null($data) || is_null($fileName)){
        $out_arr['code'] = '400004';
        return false;
    }
    $max_size = 1000000;   //声明日志的最大尺寸1000K

    $path = RUNTIME_PATH . 'log/' . $fileName;

    if(!is_dir($path)){
        $mkdir_re = mkdir($path,0777,TRUE);
        if(!$mkdir_re){
            $this -> logs($data,$fileName);
        }
    }

    $filePath = $path . "/" . date("Y-m-d",time());
    //如果文件存在并且大于了规定的最大尺寸就删除了
    if(file_exists($fileName) && (abs(filesize($fileName)) > $max_size)){
        unlink($fileName);
    }
    //删除5天前的文件
    $threeDaysFile= $path . "/" .date("Y-m-d", strtotime("-2 day"));
    if(file_exists($threeDaysFile) ){
        unlink($threeDaysFile);
    }
    $time = date("Y-m-d H:i:s",time());
    $re = file_put_contents($filePath, $time." ".var_export($data,TRUE)."\r\n\r\n" , FILE_APPEND);

    if(!$re){
        $this -> logs($data,$fileName);
    }else{
//        $out_arr['code'] = '000000';
        return false;
    }
}

分享到: