代码中的:
是CI框架自带的接值方法,不需要就直接删除
Directory()也是自己封装的递归创建文件夹函数
点击了解 : Directory()
/**
* 记录日志
*/
function logMessage($level, $msg) {
$level = strtolower($level);
// 支持的错误类型
$type = array('error','debug','info','fatal');
if (!in_array($level,$type)) {
return false;
}
//文件夹目录
$folder = str_replace('\\', '/', FCPATH.'logs/'.date('Y',time()).'/'.date('m',time()).'/'.date('d',time()).'/'.$level.'/');
if(!file_exists($folder)) {
Directory($folder);
}
$instance =& get_instance();
$info = array(
'SERVER_PROTOCOL' => isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : '',
'USER_IP' => isset($instance->request['ip']) ? $instance->request['ip'] : '',
'SERVER_NAME' => isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : '',
'REQUEST_METHOD' => isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '',
'REQUEST_URI' => isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '',
);
$info = implode(' --> ', $info);
$file = date('H').'-log.txt';
$content = date('H:i:s ') . $info.' --> ' .$level .' :'. $msg . "\n";
$path = $folder.$file;
if(!file_put_contents($path, $content,FILE_APPEND)){
logMessage('fatal',date('y-m-d').' 写入日志失败');
}
}