作为程序员一定要保持良好的睡眠,才能好编程

记录日志error_log与file_put_contents的区别

发布时间:2019-09-07

记录日志都会使用


error_log() 可以将日志发送到php的系统日志中,但是 file_put_contents() 这个函数不行


记录日志error_log与file_put_contents的区别:

如果只是记录日志,没有必要使用error_log 这个方法来操作,因为他也是一条一条写,如果日志数量特别多,则会对文件io造成非常大的压力。


private function log($msg){
    if(defined('ALI_LOG_PATH') ){
        $log_path = ALI_LOG_PATH;
        if(empty($log_path) || !file_exists($log_path)){
            throw new OSS_Exception($log_path.OSS_LOG_PATH_NOT_EXIST);
        }
    }else{
        $log_path = dirname(__FILE__).DIRECTORY_SEPARATOR.'logs'.DIRECTORY_SEPARATOR;
    }

    //检测日志目录是否存在
    if(!file_exists($log_path)){
       // throw new OSS_Exception(OSS_LOG_PATH_NOT_EXIST);
    }

    $log_name = $log_path.'oss_sdk_php_'.date('Y-m-d').'.log';

    if(ALI_DISPLAY_LOG){
        echo $msg."\n
";
    }

    if(ALI_LOG){
        if(!error_log(date('Y-m-d H:i:s')." : ".$msg."\n", 3,$log_name)){
            throw new OSS_Exception(OSS_WRITE_LOG_TO_FILE_FAILED);
        }
    }
}


定义和用法

error_log() 函数向服务器错误记录、文件或远程目标发送错误消息。


error_log(message,type,destination,headers);


image.png




若成功则返回 TRUE,失败则返回 FALSE。