记录日志都会使用
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);
若成功则返回 TRUE,失败则返回 FALSE。