THINKPHP项目开发中的日志记录实例分析
本文实例讲述了THINKPHP项目开发中的日志记录用法。分享给大家供大家参考。具体方法如下:
1、建立日志表
CREATETABLE`logs`( `id`int(11)NOTNULLauto_increment, `guid`varchar(100)charactersetutf8NOTNULL, `addtime`timestampNOTNULLdefaultCURRENT_TIMESTAMP, `account`varchar(100)charactersetutf8NOTNULL, `nickname`varchar(100)charactersetutf8NOTNULL, `app`varchar(100)charactersetutf8NOTNULL, `action`varchar(100)charactersetutf8NOTNULL, `method`varchar(100)charactersetutf8NOTNULL, `query_string`textcharactersetutf8NOTNULL, `is_desc`varchar(100)charactersetutf8NOTNULL, `desc`varchar(100)charactersetutf8NOTNULL, `ipaddr`varchar(100)charactersetutf8NOTNULL, `unique_flag`varchar(100)charactersetutf8NOTNULL, PRIMARYKEY (`id`) )ENGINE=InnoDB DEFAULTCHARSET=utf8;
2、Common/common.php里面进行方法的定义:
functiongetGlobalSkypeLogDbConfig(){ $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; } functionaddOperationLog($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('setnamesutf8',$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-dH:i:s'); $query="INSERTINTO`".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');"; returnmysql_query($query,$global_skype_log_db_conn); } functiongetAdminAccount(){ return$_SESSION['loginAccount']; } functiongetAdminNickname(){ return$_SESSION['loginUserName']; } functiongetAdminUserId(){ return$_SESSION[C('USER_AUTH_KEY')]; }
在其他操作类里调用addOperationLog();即可
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。