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


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

PHP 相关文章推荐
十天学会php之第七天
Oct 09 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
php读取msn上的用户信息类
Dec 05 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
PHP操作MySQL事务实例
Nov 05 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
微信支付开发交易通知实例
Jul 12 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
php使用imagecopymerge()函数创建半透明水印
Jan 25 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
Oct 24 PHP
PHP内置的Math函数效率测试
Dec 01 #PHP
php查找字符串出现次数的方法
Dec 01 #PHP
ThinkPHP实现动态包含文件的方法
Nov 29 #PHP
PHP静态文件生成类实例
Nov 29 #PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 #PHP
PHP实现的简单日历类
Nov 29 #PHP
PHP实现货币换算的方法
Nov 29 #PHP
You might like
php实现的双向队列类实例
2014/09/24 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
Js经典案例的实例代码
2018/05/10 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
利用Python获取操作系统信息实例
2016/09/02 Python
python中异常报错处理方法汇总
2016/11/20 Python
python版简单工厂模式
2017/10/16 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
学习python分支结构
2019/05/17 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
浅析Django中关于session的使用
2019/12/30 Python
Django values()和value_list()的使用
2020/03/31 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
优秀的计算机专业求职信范文
2013/12/27 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
小学新教师培训方案
2014/02/03 职场文书
学雷锋演讲稿
2014/03/04 职场文书
大四毕业生自荐书
2014/07/05 职场文书
合同意向书范本
2014/07/30 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
钢琴师观后感
2015/06/12 职场文书
结婚十年感言
2015/07/31 职场文书
音乐研修感悟
2015/11/18 职场文书
高二语文教学反思
2016/02/16 职场文书