您好,登錄后才能下訂單哦!
小編給大家分享一下ThinkPHP執(zhí)行調(diào)用存儲(chǔ)過(guò)程如何添加日志,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
ThinkPHP執(zhí)行調(diào)用存儲(chǔ)過(guò)程怎么添加日志
//PHP代碼部分/** * [LogAdd 操作日志] * @param [string] $userid [用戶的ID] * @param [string] $type [類型] * @param [string] $controller_name [當(dāng)前控制器的中文名稱] * @param [string] $function_name [當(dāng)前方法的中文名稱] */function LogAdd($userid,$type,$controller_name,$function_name){ //組合數(shù)據(jù) $data['userid'] = $userid;//當(dāng)前操作的用戶 $data['type'] = $type;//當(dāng)前操作的類型 $data['url'] = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//當(dāng)前操作的URL地址 $data['controller'] = CONTROLLER_NAME;//當(dāng)前控制器的名稱 $data['controller_name'] = $controller_name;//當(dāng)前控制器的中文名稱 $data['function'] = ACTION_NAME;//當(dāng)前方法的名稱 $data['function_name'] = $function_name;//當(dāng)前方法的中文名稱 $data['ip'] = getClientIP();//IP地址 $data['create_time'] = date('Y-m-d H:i:s',time());//登錄時(shí)間 //表名 $data_fun = 't_sys_logs_'.date('Y',time()); //執(zhí)行原生SQL $Model = M(); $results = $Model->query('show tables');//打開(kāi)庫(kù) //組裝為一維數(shù)組進(jìn)行判斷 foreach($results as $k=>$v){ $data_table_show[] = $v['tables_in_dbwxapplite']; } //先判斷是否存在表 if(in_array(strtolower($data_fun), $data_table_show)){ //存在表直接添加日志 $loginLog = M($data_fun)->add($data); if($loginLog != false){ $res = ['status' => '1','result' => '寫(xiě)入成功','data' => $loginLog]; }else{ $res = ['status' => '0','result' => '寫(xiě)入失敗','data' => $loginLog]; } }else{ //不存在表,先調(diào)用存儲(chǔ)過(guò)程,在執(zhí)行添加日志 $code = $Model->query("call spCreateTableSysLogs(".date('Y',time()).")"); if($code){ //存儲(chǔ)過(guò)程成功則添加數(shù)據(jù) $loginLog = M($data_fun)->add($data); if($loginLog != false){ $res = ['status' => '1','result' => '寫(xiě)入成功','data' => $loginLog]; }else{ $res = ['status' => '0','result' => '寫(xiě)入失敗','data' => $loginLog]; } }else{ //失敗 $res = ['status' => '0','result' => '存儲(chǔ)過(guò)程調(diào)用失敗','data' => $loginLog]; } } return $res;}
//mysql腳本數(shù)據(jù)庫(kù)部分-- ------------------------------ Table structure for t_sys_logs_2017-- ----------------------------DROP TABLE IF EXISTS `t_sys_logs_2017`;CREATE TABLE `t_sys_logs_2017` ( `logid` int(11) NOT NULL AUTO_INCREMENT COMMENT '日志ID', `userid` varchar(32) NOT NULL DEFAULT '0' COMMENT '創(chuàng)建人ID', `type` varchar(8) NOT NULL COMMENT '日志操作類型,如:登錄;注銷(xiāo);退出;修改密碼;創(chuàng)建報(bào)名', `url` varchar(100) NOT NULL DEFAULT 'www' COMMENT '當(dāng)前操作的URL', `controller` varchar(30) NOT NULL DEFAULT '控制器的名稱' COMMENT '當(dāng)前控制器的名稱', `controller_name` varchar(30) NOT NULL DEFAULT '控制器的中文名稱' COMMENT '當(dāng)前控制器的中文名稱', `function` varchar(30) NOT NULL DEFAULT '方法的名稱' COMMENT '當(dāng)前方法的名稱', `function_name` varchar(30) NOT NULL DEFAULT '方法的中文名稱' COMMENT '當(dāng)前方法的中文名稱', `ip` varchar(30) NOT NULL DEFAULT '255.255.255.255' COMMENT '當(dāng)前操作客戶端IP', `create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '創(chuàng)建時(shí)間', `update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時(shí)間', PRIMARY KEY (`logid`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='操作日志表';
以上是“ThinkPHP執(zhí)行調(diào)用存儲(chǔ)過(guò)程如何添加日志”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。