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脚本的10个技巧(8)
Oct 09 PHP
安装APACHE
Jan 15 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
php curl_init函数用法
Jan 31 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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
西德产收音机
2021/03/01 无线电
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python Tensor和Array对比分析
2020/01/08 Python
pytorch梯度剪裁方式
2020/02/04 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
写给女生的道歉信
2014/01/08 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
班级心理活动总结
2014/07/04 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
中班教师个人总结
2015/02/05 职场文书
放牛班的春天观后感
2015/06/01 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server