Posted in PHP onDecember 01, 2014
本文实例讲述了THINKPHP项目开发中的日志记录用法。分享给大家供大家参考。具体方法如下:
1、建立日志表
CREATE TABLE `logs` ( `id` int(11) NOT NULL auto_increment, `guid` varchar(100) character set utf8 NOT NULL, `addtime` timestamp NOT NULL default CURRENT_TIMESTAMP, `account` varchar(100) character set utf8 NOT NULL, `nickname` varchar(100) character set utf8 NOT NULL, `app` varchar(100) character set utf8 NOT NULL, `action` varchar(100) character set utf8 NOT NULL, `method` varchar(100) character set utf8 NOT NULL, `query_string` text character set utf8 NOT NULL, `is_desc` varchar(100) character set utf8 NOT NULL, `desc` varchar(100) character set utf8 NOT NULL, `ipaddr` varchar(100) character set utf8 NOT NULL, `unique_flag` varchar(100) character set utf8 NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
2、Common/common.php里面进行方法的定义:
function getGlobalSkypeLogDbConfig() { $global_skype_db_config = array( 'dbms' => C('DB_TYPE'), 'username' => C('DB_USER'), 'password' => C('DB_PWD'), 'hostname' => C('DB_HOST'), 'database' => C('DB_NAME'), ); return $global_skype_db_config; } function addOperationLog($desc=NULL, $unique_flag='system', $app=APP_NAME, $action=MODULE_NAME, $method=ACTION_NAME) { $global_skype_db_config = getGlobalSkypeLogDbConfig(); static $global_skype_log_db_conn; if (!$global_skype_log_db_conn) { $global_skype_log_db_conn = mysql_connect($global_skype_db_config['hostname'], $global_skype_db_config['username'], $global_skype_db_config['password']); } if (!$global_skype_log_db_conn) { die('Mysql_Error:' . __FILE__ . '|' . __LINE__ . '|' . mysql_error()); } mysql_query('use ' . $global_skype_db_config['database'], $global_skype_log_db_conn); mysql_query('set names utf8 ', $global_skype_log_db_conn); $account = getAdminAccount(); $nickname = getAdminNickname(); $user_id = getAdminUserId(); $ipaddr = get_client_ip(); $query_string = print_r(array_merge($_GET, $_POST), true); $desc = $desc; $is_desc = 0; $unique_flag = $unique_flag; if ($desc) { $is_desc = 1; } $insert_time = date('Y-m-d H:i:s'); $query = "INSERT INTO `" . C('LOG_DB_TABLE') . "` (`guid`,`account`,`nickname`,`addtime`,`app`,`action`, `method`,`query_string`,`is_desc`,`desc`,`ipaddr`,`unique_flag`) VALUES ('$user_id','$account','$nickname','$insert_time','$app', '$action','$method','$query_string','$is_desc','$desc','$ipaddr','$unique_flag');"; return mysql_query($query, $global_skype_log_db_conn); } function getAdminAccount() { return $_SESSION['loginAccount']; } function getAdminNickname() { return $_SESSION['loginUserName']; } function getAdminUserId() { return $_SESSION[C('USER_AUTH_KEY')]; }
在其他操作类里调用addOperationLog();即可
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。
THINKPHP项目开发中的日志记录实例分析
- Author -
shichen2014声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@