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框架程序设计有所帮助。