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中的加密功能
Oct 09 PHP
php面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
PHP多个版本的分析解释
Jul 21 PHP
php使用curl存储cookie的示例
Mar 31 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
Apr 05 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
PHP中require和include路径问题详解
Dec 25 PHP
php生成RSS订阅的方法
Feb 13 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 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
第十节--抽象方法和抽象类
2006/11/16 PHP
php-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
分析python切片原理和方法
2017/12/19 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
Python Django搭建网站流程图解
2020/06/13 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
卫校中专生的自我评价
2014/01/15 职场文书
装修施工安全责任书
2014/07/24 职场文书
英文导游词
2015/02/13 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
MySQL学习之基础命令实操总结
2022/03/19 MySQL
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers