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中判断一个字符串包含另一个字符串的方法
Mar 19 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
PHP文件上传处理案例分析
Oct 15 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 PHP
Laravel中Kafka的使用详解
Mar 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使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
js转换对象为xml
2017/02/17 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
阿里旅行:飞猪
2017/01/05 全球购物
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
少先队中队工作总结
2015/08/14 职场文书
禁毒主题班会教案
2015/08/14 职场文书
2016年教师节感言
2015/12/09 职场文书
2019 入党申请书范文
2019/07/10 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
python多次执行绘制条形图
2022/04/20 Python