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安全配置
Dec 06 PHP
php公用函数列表[正则]
Feb 22 PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
PHP中date与gmdate的区别及默认时区设置
May 12 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
Mar 19 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
建立动态的WML站点(一)
2006/10/09 PHP
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
让PHP支持断点续传的源码
2010/05/16 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
Javascript单例模式的介绍和实例
2016/10/08 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
医院护理人员的自我评价分享
2013/10/04 职场文书
机关门卫岗位职责
2013/12/30 职场文书
《灯光》教学反思
2014/02/08 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
服务承诺书格式
2014/05/21 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL