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面试题附答案
Jan 07 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
Laravel中Trait的用法实例详解
Mar 16 PHP
Smarty模板常见的简单应用分析
Nov 15 PHP
PHP闭包定义与使用简单示例
Apr 13 PHP
PHP上传文件及图片到七牛的方法
Jul 25 PHP
Yii框架函数简单用法分析
Sep 09 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
Python读取mp3中ID3信息的方法
2015/03/05 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
Python实现Linux监控的方法
2019/05/16 Python
Python求离散序列导数的示例
2019/07/10 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
新闻专业毕业生求职信
2014/08/08 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
Python如何使用循环结构和分支结构
2022/04/13 Python
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android