THINKPHP项目开发中的日志记录实例分析

前端技术 2023/09/09 PHP

本文实例讲述了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框架程序设计有所帮助。

本文地址:https://www.stayed.cn/item/24061

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。