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 相关文章推荐
Smarty foreach控制循环次数的实现详解
Jul 03 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
yii中widget的用法
Dec 03 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
Aug 27 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
PHP实现简易blog的制作
Oct 24 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
实现PHP中session存储及删除变量
Oct 15 PHP
微信公众平台开发教程②微信端分享功能图文详解
Apr 10 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
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
php析构函数的简单使用说明
2015/08/24 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
Python下的twisted框架入门指引
2015/04/15 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
pandas对指定列进行填充的方法
2018/04/11 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
python虚拟环境迁移方法
2019/01/03 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
全球立体声:World Wide Stereo
2018/09/29 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
小学一年级评语大全
2014/04/22 职场文书
2014年工会工作总结
2014/11/12 职场文书
离婚协议书范本
2015/01/26 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
导游词之湖北武当山
2019/09/23 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang